Fungsi Bersarang di Swift (Dengan Contoh)

Di artikel ini, Anda akan mempelajari tentang fungsi bertingkat di Swift dan cara kerjanya dengan contoh.

Jika suatu fungsi ada di dalam tubuh fungsi lain, itu disebut fungsi bertingkat.

Sintaks dari fungsi bertingkat

 func funcname () (// pernyataan fungsi luar func anotherFuncname () (// pernyataan fungsi dalam)) 

Di sini, fungsinya anotherFuncnameada di dalam tubuh fungsi lain funcname.

Perlu dicatat bahwa, fungsi bagian dalam hanya dapat dipanggil dan digunakan di dalam fungsi penutup (fungsi luar).

Contoh 1: Fungsi bersarang tanpa nilai yang dikembalikan

 func outputMessageByGreeting(_ message: String) ( func addGreetingAndPrint() ( print("Hello! (message)") ) addGreetingAndPrint() ) outputMessageByGreeting("Jack") 

Saat Anda menjalankan program, hasilnya adalah:

Halo! Mendongkrak

Dalam program di atas, fungsi bersarang addGreetingAndPrint()dipanggil dari fungsi penutup outputMessageByGreeting().

Pernyataan itu outputMessageByGreeting("Jack")memanggil fungsi luar. Dan pernyataan addGreetingAndPrint()di dalam fungsi luar memanggil metode yang menghasilkan Halo! Jack di konsol.

Anda tidak dapat memanggil fungsi di addGreetingAndPrintluar fungsi tersebut outputMessageByGreeting.

Contoh 2: Fungsi bersarang dengan parameter dan nilai kembalian

Fungsi bersarang dapat berisi fungsi dengan parameter dan mengembalikan nilai.

 func operate(with symbol:String) -> (Int, Int) -> Int ( func add(num1:Int, num2:Int) -> Int ( return num1 + num2 ) func subtract(num1:Int, num2:Int) -> Int ( return num1 - num2 ) let operation = (symbol == "+") ? add : subtract return operation ) let operation = operate(with: "+") let result = operation(2, 3) print(result) 

Saat Anda menjalankan program, hasilnya adalah:

 5

Dalam program di atas,

  • fungsi luarnya adalah operate(), dengan nilai kembalian dari tipe Fungsi (Int,Int) -> Int.
  • dan fungsi bagian dalam (bersarang) adalah add()dan subtract().

Fungsi bersarang add()dan subtract()dengan cara digunakan di luar fungsi penutup operate(). Ini dimungkinkan karena fungsi luar mengembalikan salah satu dari fungsi ini.

Kami telah menggunakan fungsi bagian dalam di luar fungsi penutup operate()sebagai operation(2, 3). Program ini secara internal memanggil add(2, 3)keluaran 5 di konsol.

Artikel yang menarik...