Scala - Fungsi
Fungsi adalah sekelompok pernyataan yang melakukan tugas. Anda dapat membagi kode Anda menjadi beberapa fungsi terpisah. Bagaimana Anda membagi kode Anda di antara fungsi-fungsi yang berbeda terserah Anda, tetapi secara logika, pembagian biasanya dilakukan sehingga setiap fungsi melakukan tugas tertentu.
Scala memiliki kedua fungsi dan metode dan kami menggunakan metode istilah dan fungsi secara bergantian dengan perbedaan kecil. Metode Scala adalah bagian dari kelas yang memiliki nama, tanda tangan, opsional beberapa penjelasan, dan beberapa bytecode dimana sebagai fungsi di Scala adalah objek lengkap yang dapat ditugaskan ke variabel. Dengan kata lain, suatu fungsi, yang didefinisikan sebagai anggota suatu objek, disebut metode.
Definisi fungsi dapat muncul di mana saja dalam file sumber dan Scala mengizinkan definisi fungsi bertingkat, yaitu definisi fungsi di dalam definisi fungsi lainnya. Hal terpenting yang perlu diperhatikan adalah bahwa nama fungsi Scala dapat memiliki karakter seperti +, ++, ~, &, -, -, \, /,:, dll.
Deklarasi Fungsi
Deklarasi fungsi Scala memiliki bentuk berikut -
def functionName ([list of parameters]) : [return type]
Metode secara implisit dideklarasikan abstrak jika Anda tidak menggunakan tanda sama dengan dan isi metode.
Definisi Fungsi
Definisi fungsi Scala memiliki bentuk berikut -
Sintaksis
def functionName ([list of parameters]) : [return type] = {
function body
return [expr]
}
Sini, return type bisa berupa tipe data Scala yang valid dan list of parametersakan menjadi daftar variabel yang dipisahkan dengan koma dan daftar parameter dan jenis kembalian adalah opsional. Sangat mirip dengan Java, areturnpernyataan dapat digunakan bersama dengan ekspresi dalam fungsi kasus mengembalikan nilai. Berikut adalah fungsi yang akan menambahkan dua bilangan bulat dan mengembalikan jumlahnya -
Sintaksis
object add {
def addInt( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
Sebuah fungsi, yang tidak mengembalikan apapun bisa mengembalikan a Unit itu setara dengan voiddi Java dan menunjukkan bahwa fungsi tidak mengembalikan apa pun. Fungsi yang tidak mengembalikan apapun di Scala disebut sebagai prosedur.
Sintaksis
Inilah sintaksnya -
object Hello{
def printMe( ) : Unit = {
println("Hello, Scala!")
}
}
Fungsi Panggilan
Scala menyediakan sejumlah variasi sintaksis untuk metode pemanggilan. Berikut adalah cara standar untuk memanggil metode -
functionName( list of parameters )
Jika suatu fungsi dipanggil menggunakan turunan dari objek, maka kita akan menggunakan notasi titik yang mirip dengan Java sebagai berikut -
[instance.]functionName( list of parameters )
Coba program contoh berikut untuk mendefinisikan dan kemudian memanggil fungsi yang sama.
Contoh
object Demo {
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
}
}
Simpan program di atas dalam Demo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.
Perintah
\>scalac Demo.scala
\>scala Demo
Keluaran
Returned Value : 12
Fungsi Scala adalah jantung dari pemrograman Scala dan itulah mengapa Scala dianggap sebagai bahasa pemrograman fungsional. Berikut adalah beberapa konsep penting terkait dengan fungsi Scala yang harus dipahami oleh seorang programmer Scala.
Fungsi Call-by-Name | Fungsi dengan Argumen Bernama |
Fungsi dengan Argumen Variabel | Fungsi Rekursi |
Nilai Parameter Default | Fungsi Tingkat Tinggi |
Fungsi Bersarang | Fungsi Anonim |
Fungsi yang Diterapkan Sebagian | Fungsi Kari |