Fungsi Bersarang dalam Swift (Dengan Contoh)

Dalam artikel ini, anda akan belajar tentang fungsi bersarang di Swift dan bagaimana ia berfungsi dengan contoh.

Sekiranya fungsi ada di dalam badan fungsi lain, ia dipanggil fungsi bersarang.

Sintaks fungsi bersarang

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

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

Perlu diperhatikan bahawa, fungsi dalaman hanya dapat dipanggil dan digunakan di dalam fungsi penutup (fungsi luar).

Contoh 1: Fungsi bersarang tanpa nilai kembali

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

Semasa anda menjalankan program, outputnya adalah:

Helo! Jack

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

Pernyataan itu outputMessageByGreeting("Jack")memanggil fungsi luar. Dan pernyataan addGreetingAndPrint()di dalam fungsi luar memanggil kaedah yang mengeluarkan Hello! Jack di konsol.

Anda tidak boleh memanggil fungsi addGreetingAndPrintdi luar fungsi outputMessageByGreeting.

Contoh 2: Fungsi bersarang dengan parameter dan nilai kembali

Fungsi bersarang dapat mengandungi fungsi dengan parameter dan nilai kembali.

 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) 

Semasa anda menjalankan program, outputnya adalah:

 5

Dalam program di atas,

  • fungsi luar adalah operate(), dengan nilai kembali jenis Fungsi (Int,Int) -> Int.
  • dan fungsi dalaman (bersarang) adalah add()dan subtract().

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

Kami telah menggunakan fungsi dalaman di luar fungsi lampiran operate()sebagai operation(2, 3). Program secara dalaman memanggil add(2, 3)mana yang mengeluarkan 5 di konsol.

Artikel menarik...