Fungsi skala
Fungsi ialah sekumpulan pernyataan yang bersama-sama melaksanakan tugas. Anda boleh membahagikan kod anda kepada fungsi yang berbeza. Bagaimana anda membahagikan kod anda kepada fungsi yang berbeza terpulang kepada anda, tetapi secara logiknya pembahagian itu biasanya berdasarkan setiap fungsi yang melaksanakan tugas tertentu.
Scala mempunyai fungsi dan kaedah, dan perbezaan semantik antara keduanya sangat kecil. Kaedah Scala adalah sebahagian daripada kelas, manakala fungsi ialah objek yang boleh diberikan kepada pembolehubah. Dengan kata lain, fungsi yang ditakrifkan dalam kelas adalah kaedah.
Kita boleh mentakrifkan fungsi di mana-mana, walaupun dalam fungsi (fungsi sebaris). Perkara yang lebih penting ialah nama fungsi Scala boleh mengandungi aksara khas berikut: +, ++, ~, &,-, -- , , /, : dsb.
Pengisytiharan fungsi
Format pengisytiharan fungsi Scala adalah seperti berikut:
def functionName ([参数列表]) : [return type]
Jika anda tidak menulis tanda sama dan badan kaedah, maka kaedah itu akan menjadi secara tersirat diisytiharkan sebagai "abstrak" (abstrak)", jenis yang mengandunginya juga merupakan jenis abstrak.
Takrifan fungsi
Takrifan kaedah bermula dengan kata kunci def, diikuti dengan senarai parameter pilihan, titik bertindih ":" dan jenis pulangan kaedah, tanda yang sama" =", dan akhirnya badan kaedah.
Format definisi fungsi Scala adalah seperti berikut:
def functionName ([参数列表]) : [return type] = { function body return [expr] }
Dalam kod di atas, jenis pulangan boleh menjadi mana-mana jenis data Scala yang sah. Parameter dalam senarai parameter boleh dipisahkan dengan koma.
Fungsi fungsi berikut adalah untuk menambah dua parameter masuk dan menjumlahkannya:
object add{ def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
Jika fungsi tidak mengembalikan nilai, ia boleh dikembalikan sebagai Unit, yang serupa Untuk void Java, contohnya adalah seperti berikut:
object Hello{ def printMe( ) : Unit = { println("Hello, Scala!") } }
Panggilan fungsi
Scala menyediakan pelbagai kaedah panggilan fungsi yang berbeza:
Berikut Ia adalah format standard untuk kaedah panggilan:
functionName( 参数列表 )
Jika fungsi menggunakan objek contoh untuk memanggil, kita boleh menggunakan format seperti java (menggunakan . nombor):
[instance.]functionName( 参数列表 )
Contoh di atas menunjukkan definisi dan panggilan fungsi:
object Test { def main(args: Array[String]) { println( "Returned Value : " + addInt(5,7) ); } def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
Laksanakan kod di atas, dan hasil output ialah:
$ scalac Test.scala $ scala Test Returned Value : 12
Scala juga bahasa berfungsi, jadi fungsi adalah teras bahasa Scala. Konsep fungsi berikut membantu kami memahami pengaturcaraan Scala dengan lebih baik:
函数概念解析接案例 | ||
---|---|---|
函数传名调用(Call-by-Name) | 指定函数参数名 | |
函数 - 可变参数 | 递归函数 | |
默认参数值 | 高阶函数 | |
内嵌函数 | 匿名函数 | |
偏应用函数 | 函数柯里化(Function Currying) |