scala(三)函式
1.Scala 中使用 val 語句可以定義函式, def 語句定義方法。
class Test{ def m(x: Int) = x + 3 val f = (x: Int) => x + 3} 2.Scala 方法宣告格式如下: def functionName ([引數列表]) : [return type] 如果你不寫等於號和方法主體,那麼方法會被隱式宣告為抽象(abstract),包含它的型別於是也是一個抽象型別。 3.方法定義 由一個 def 關鍵字開始,緊接著是可選的引數列表,一個冒號 : 和方法的返回型別,一個等於號 = ,最後是方法的主體。 Scala 方法定義格式如下: def functionName ([引數列表]) : [return type] = { function body return [expr](預設最後一行)} } 4.函式 函式預設引數 cala 可以為函式引數指定預設引數值,使用了預設引數,你在呼叫函式的過程中可以不需要傳遞引數,這時函式就會呼叫它的預設引數值,如果傳遞了引數,則傳遞值會取代預設值。例項如下:object Test { def main(args: Array[String]) { println( "返回值 : " + addInt() ); } def addInt( a:Int=5, b:Int=7 ) : Int = { var sum:Int = 0 sum = a + b return sum }} 函式命名引數 般情況下函式呼叫引數,就按照函式定義時的引數順序一個個傳遞。但是我們也可以透過指定函式引數名,並且不需要按照順序向函式傳遞引數,例項如下:object Test { def main(args: Array[String]) { printInt(b=5, a=7); } def printInt( a:Int, b:Int ) = { println("Value of a : " + a ); println("Value of b : " + b ); } } 函式可變引數 Scala 允許你指明函式的最後一個引數可以是重複的,即我們不需要指定函式引數的個數,可以向函式傳入可變長度引數列表。 Scala 透過在引數的型別之後放一個星號來設定可變引數(可重複的引數)。例如: object Test { def main(args: Array[String]) { printStrings("Runoob", "Scala", "Python"); } def printStrings( args:String* ) = { var i : Int = 0; for( arg <- args ){ println("Arg value[" + i + "] = " + arg ); i = i + 1; } }} 遞迴函式 遞迴函式意味著函式可以呼叫它本身。 以上例項使用遞迴函式來計算階乘: object Test { def main(args: Array[String]) { for (i <- 1 to 10) println(i + " 的階乘為: = " + factorial(i) ) } def factorial(n: BigInt): BigInt = { if (n <= 1) 1 else n * factorial(n - 1) }} 匿名函式 箭頭左邊是引數列表,右邊是函式體。使用匿名函式後,我們的程式碼變得更簡潔了。 下面的表示式就定義了一個接受一個Int型別輸入引數的匿名函式: var inc = (x:Int) => x+1 上述定義的匿名函式,其實是下面這種寫法的簡寫: def add2 = new Function1[Int,Int]{ def apply(x:Int):Int = x+1; }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31496956/viewspace-2213142/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- scala函式函式
- Scala與Java差異(三)之函式Java函式
- 【Scala篇】--Scala中的函式函式
- Scala偏函式函式
- Scala本地函式函式
- scala 函式和方法函式
- Scala 的方法與函式函式
- scala 函式程式設計函式程式設計
- Scala的高階函式函式
- scala語法 - 方法與函式函式
- 學習Scala 方法與函式函式
- Scala函式與函數語言程式設計函式函數程式設計
- Scala(一):函式、流程控制、引數函式
- Scala:數字是物件,函式也是物件!物件函式
- 三、函式函式
- 關於scala中的主建構函式函式
- Spark SQL scala和java版本的UDF函式使用SparkSQLJava函式
- scala簡明教程:偏函式、高階函式、Future非同步程式設計、隱式轉換函式非同步程式設計
- 函式學習三函式
- ORACLE單行函式與多行函式之三:數值函式Oracle函式
- ORACLE函式介紹第三篇 著名函式之聚合函式Oracle函式
- webgl內建函式--角度和三角函式Web函式
- 字串函式學習三字串函式
- 三角函式公式函式公式
- 前端基礎(三):函式前端函式
- angular 三大核心函式Angular函式
- Oracle 內建函式三Oracle函式
- 學好Spark/Kafka必須要掌握的Scala技術點(三)高階函式、方法、柯里化、隱式轉換SparkKafka函式
- 大資料Scala系列之樣例類_Option_偏函式大資料函式
- 支援向量機(三)核函式函式
- 二談三角函式函式
- 好程式設計師大資料教程Scala系列之高階函式程式設計師大資料函式
- Sql Server函式全解(三)資料型別轉換函式和文字影像函式SQLServer函式資料型別
- Scala學習(三)練習
- NumPy 基礎 (三) - 數學函式函式
- Golang 基礎之函式使用 (三)Golang函式
- OpenFaaS實戰之三:Java函式Java函式
- 三種方法實現strlen函式函式