<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 1. 條件表達式 - Scala表達式中if/else有值。 ~~~ if (x > 0) 1 else -1 等同于C++中:x>0 ? 1 : -1 ~~~ - else 部分缺失,引入`Unit類`,寫成(),不帶else的語句等同于: ~~~ if (x > 0) 1 else () ~~~ 這里Unit相當于C++中void。 - Scala沒有switch語句。 - 在REPL(Read-Eval-Print Loop)中輸入代碼塊,可以鍵入`:paste`,然后按`Ctrl+D`結束。 ### 2. 語句終止 - Scala語言中行尾不需要分號,只要上下文能明確判斷出終止即可。 - 要想在單行中寫多個語句,就需要分號隔開。(不推薦使用) ~~~ if(n > 0) {r += 1; n += 1} ~~~ - 較長語句以不能用做語句結尾的符號結尾。 ~~~ s = 4 + 3 * s0 - 8 + //這里的+號就告訴編譯器,這不是行結尾 0.5 * 4.3 -2.3 ~~~ ### 3. 塊表達式和賦值 - `{}`塊包含一系列表達式,塊的值就是最后一個表達式的值。 - 賦值語句塊的值返回的是`Unit類型`,寫做`()`。 ~~~ x = y = 2 //不要這么做,y=2返回的是一個Unit類型 ~~~ ### 4. 輸入和輸出 - `print`和`println`不同之處是,`println`多輸出一個換行符。還有一個帶有C風格格式化的`printf`。 - `readLine`從控制臺讀入一行(唯一可以帶一個參數作為提示符字符串),readInt、readDouble、readBoolean、readChar、readLong、readByte等都是用于輸入。 ### 5. 循環 - while和do循環與C++相同。 - for循環結構如下。 ~~~ //1 to n返回數字1到n的一個區間 //讓變量遍歷<-右邊的表達式所有值 for(i <- 1 to n) r = r * i ~~~ - 遍歷字符串或數組時,用`until方法`,util方法返回一個并不包含上屆的區間。 ~~~ val s = "Hello" var sum = 0 for(i <- 0 until s.length)//i的最后一個值為s.length-1 sum += s(i) //上面等價于下面 for(ch <- "Hello") sum += ch ~~~ - Scala沒有提供break或continue - 如果要用break可以使用下面三種方法: ![break方法](https://box.kancloud.cn/2016-04-07_57061f739f033.jpg "") ### 6. 高級for循環和for推導式 - for可以提供多個生成器,用分號隔開。 ~~~ for(i <- 1 to 3; j <- 1 to 3) print(((i * 10) + j) + " ") ~~~ - 每個生成器可以帶一個守衛,以if開頭的Boolean表達式。(if前沒有分號) ~~~ for(i <- 1 to 3; j <- 1 to 3 if i != j) print(((i * 10) + j) + " ") ~~~ - for循環中可以使用變量。 - for推導式:for循環體以`yeild`開始,會構造一個集合,每次迭代生成集合中的一個值。 ~~~ for(i <- 1 to 3) i % 3//最后生成Vector(1,2,0,1,2,0,1,2,0,1) ~~~ - for推導式生成的集合與第一個生成式的類型兼容。 ### 7. 函數 - 基本函數定義如下。 ~~~ def fac(n : Int) = {//等號右邊表達式的類型推出函數返回類型 var r = 1 for (i <- 1 to n) r = r * i r//可以用return,但不常見 } ~~~ - 函數不是遞歸的,就不需要指定返回值。對于遞歸函數,必須指明返回類型。 ~~~ def fac(n : Int) : Int= {//等號右邊表達式的類型推出函數返回類型 if (n <= 0) 1 else n * fac(n - 1) } ~~~ ### 8. 默認參數和帶名參數 - 定義如下: ~~~ def f(str: String, left: String = "[", right: String = "]") = { left + str + right } ~~~ - 調用 ~~~ f("Hello", right = "}") // 這里混合使用了未帶名參數和帶名參數 ~~~ ### 9. 變長參數 - 定義如下: ~~~ def sum(args: Int*) = { var result = 0 for (arg <- args) result += arg result ~~~ - 調用 ~~~ val s = sum(1, 3, 8, 9) val s = sum(1 to 5: _*)//要使用一個值得序列,把1 to 5當成一個序列必須追加:_* ~~~ ### 10. 過程 - 定義:有的函數不返回值,只需要去掉花括號前面的=號,它的返回類型是Unit。 ~~~ def box(s: String) { println("hello world" + s "\n") } 等價于: def box(s: String): Unit = { println("hello world" + s "\n") } ~~~ ### 11. 懶值 - 當val被聲明為`lazy`時,它的初始化將被推遲,直到我們首次取值。 ~~~ lazy val words = "hello scala" ~~~ ### 12. 異常 - Scala異常工作機制跟Java和C++一樣,拋出異常時,比如(throw表示式的類型為Nothing)。 ~~~ throw new IllegalArgumentException("x should not be negative") ~~~ - 在if/else中,如果一個分支是Nothing類型,則if/else表達式的類型就是另一個分支的類型。 - 異常捕獲用`try/catch`或`try/finally`或`try/catch/finally`。 【待續】
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看