国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

scala 學(xué)習(xí)筆記(01) 函數(shù)定義、分支、循環(huán)、異常處理、遞歸

2019-11-11 04:37:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

http://www.cnblogs.com/yjmyzz/p/4694800.html

package yjmyzz import scala.io.StdIn object ScalaApp {   def main(args: Array[String]) {    PRintln("please input something,press Enter to exit:"//每一行最后加不加分號(hào)都可以    readKeyboard //注:無(wú)參數(shù)的函數(shù)調(diào)用,加不加括號(hào)都行    println(add(12) + "/n------/n")    println(div(12) + "/n------/n")    println(div(10) + "/n------/n")    println("5!=" + factorial(5) + "/n------/n")    println("-1!=" + factorial2(-1) + "/n------/n")    println("5!=" + factorial2(5) + "/n------/n")  }   /**   * 鍵盤(pán)讀取示例(無(wú)返回值)   */  def readKeyboard() {    //注:無(wú)返回值,即相當(dāng)于返回值為Unit,所以上面的方法聲明也可以寫(xiě)成    // def readKeyboard(): Unit = {    var line = StdIn.readLine()    while (line != "") {      println("you just input the : " + line)      line = StdIn.readLine()    }    println("bye/n")  }   /**   * 整數(shù)加法(帶返回值示例)   * @param x   * @param y   * @return   */  def add(x: Integer, y: Integer): Integer = {    print(x + " + " + y + " = ")    x + y //返回值,連return都不用加,十分簡(jiǎn)潔  }   /**   * 異常處理示例   */  def div(x: Long, y: Long): Double = {    var hasError = false    try {      if (y.equals(0L)) throw new RuntimeException("divide by zero"else x.toDouble / y    }    catch {      case e: Exception => {        hasError = true        println("error:" + e.getMessage())        Double.MinValue      }    }    finally {      if (hasError) println("finished , but there has a error"else println("finished")    }  }   /**   * 遞歸示例   * @param x   * @return   */  def factorial(x: Integer): Long = {    if (x.equals(0)) 1 else x * factorial(x - 1)  }   /**   * 演示for循環(huán)   * @param x   * @return   */  def factorial2(x: Integer): Long = {    if (x <= 0return 1 //注:加return后,下面的代碼就不執(zhí)行了    println("test")    var temp = 1L    for (i <- 1 to x) {      temp = temp * i    }    temp  } }

從語(yǔ)法風(fēng)格上看,確實(shí)比java簡(jiǎn)潔無(wú)數(shù),有那么一丁點(diǎn)javascript的味道。

函數(shù)定義,除了用正式的def來(lái)定義外,還可以"匿名"定義,比如下面這樣:

12var add = (a: Integer, b: Integer) => a + b //是不是有點(diǎn)c#中匿名方法和lambda的味道了:)println(add(12))

 對(duì)于無(wú)參函數(shù),可以做為另一個(gè)函數(shù)的參數(shù)

123456789101112131415def oneFunc = {  println("one func")} /** * 無(wú)參函數(shù),可以直接作為另一個(gè)函數(shù)的參數(shù)(有點(diǎn)象c#中的委托) * @param a */def twoFunc(a: Unit) = {  a  println("two func")} //調(diào)用示例twoFunc(oneFunc)

for循環(huán)還可以寫(xiě)得更強(qiáng)大:

1234567891011121314def forDemo = {  for (x <- 1 to 2; y <- 3 to 4) println("x=" + x + ",y=" + y)   println   //上面的寫(xiě)法,等效于下面的寫(xiě)法  for (x <- 1 to 2)    for (y <- 3 to 4)      println("x=" + x + ",y=" + y)   println  //帶條件的for循環(huán)(打印10以內(nèi)的偶數(shù))  for (i <- 1 to 10if % 2 == 0) println(i)}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙雅县| 瑞安市| 宁河县| 乳山市| 永吉县| 大渡口区| 石渠县| 阜阳市| 亚东县| 桦川县| 平乐县| 平顶山市| 叶城县| 虹口区| 凤冈县| 临猗县| 锡林郭勒盟| 西吉县| 石林| 元江| 文昌市| 乐昌市| 镇平县| 合山市| 平顶山市| 濉溪县| 岗巴县| 谷城县| 临邑县| 锦州市| 达拉特旗| 长武县| 璧山县| 宁安市| 墨江| 宝坻区| 灵川县| 濉溪县| 大港区| 谷城县| 丰都县|