Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

412 Lượt xem 0 Bình luận
Closure: Về mặt ngữ nghĩa là một "Bao đóng", nó gần giống với một khối lệnh trong C hoặc Object-C. Closure là một khối lệnh đặc biệt, nó có thể có 0 hoặc nhiều tham số, và có thể có kiểu trả về.
Để đơn giản bạn hãy xem một khai báo dưới đây, bạn có thể đoán được ý nghĩa của nó?


Các khai báo ở trên có thể được giải thích bởi hình minh họa dưới đây:

Đây là một cú pháp khai báo biến với kiểu dữ liệu, và gán giá trị cho biến mà bạn đã quen thuộc:

MyFirstClosure.swift
?
import Foundation
 
 
// Khai báo biến myVar1, với kiểu dữ liệu, và gán giá trị.
 
var myVar1 : () -> () =  {
    
   print("Hello from Closure 1");
}
 
 
// Khai báo biến myVar2, với kiểu dữ liệu, và gán giá trị.
 
var myVar2 : () -> (String)  = { () -> (String) in
 
   return "Hello from Closure 2"
 
}
    
// Khai báo biến myVar3, với kiểu dữ liệu, và gán giá trị.
 
var myVar3 : (Int, Int) -> (Int)  =  { (a : Int, b: Int) -> (Int) in
    
   var c : Int =  a + b
    
   return c
}
    
 
func test_closure()     {
    
   // Thực thi khối lệnh
   myVar1()
    
   // Thực thi khối lệnh và nhận giá trị trả về.
   var str2 = myVar2()
    
   print(str2)
    
   // Thực thi khối lệnh, truyền vào tham số
   // và nhận giá trị trả về.
   var c: Int =  myVar3(11, 22)
    
   print(c)
    
}

Closure chính là các khối lệnh, có thể có tham số, và thể có kiểu trả về:

Cú pháp của Closure:
?

 
{  (parameters) -> returntype in
     // statements
}
Nội dung bình luận
Unknown user
No responses yet