2015-05-21 17 views
24

Tôi đang cố triển khai một số mã từ parse.com và tôi nhận thấy một từ khóa in sau khoảng trống.Swift `in` keyword nghĩa là gì?

Tôi đang bối rối đây là gì? Dòng thứ hai bạn thấy số Void in

PFUser.logInWithUsernameInBackground("myname", password:"mypass") { 
    (user: PFUser?, error: NSError?) -> Void in 
    if user != nil { 
    // Do stuff after successful login. 
    } else { 
    // The login failed. Check error to see why. 
    } 
} 

Tài liệu không ghi tài liệu này. Tôi biết từ khóa in được sử dụng trong các vòng for.

Bất kỳ ai xác nhận?

+2

trước "trong" là chữ ký của người đóng cửa. Sau khi ở trong là cơ thể của việc đóng cửa. –

+0

http://www.apeth.com/swiftBook/ch02.html#_anonymous_functions – matt

Trả lời

49

Trong một hàm được đặt tên, chúng tôi khai báo các tham số và kiểu trả về trong dòng khai báo func.

func say(s:String)->() { 
    // body 
} 

Trong chức năng ẩn danh, không có dòng khai báo func - nó ẩn danh! Vì vậy, chúng tôi làm điều đó với một dòng in ở đầu của cơ thể để thay thế.

{ 
    (s:String)->() in 
    // body 
} 

(Đó là đầy đủ hình thức của một chức năng ẩn danh. Nhưng sau đó Swift có một loạt các quy tắc cho phép các kiểu trả về, các loại tham số, và ngay cả những tên tham số và toàn bộ in xếp hàng để được bỏ qua . trong những trường hợp nhất định)

+0

Cảm ơn matt, tôi không thể tin rằng tôi đã bỏ lỡ điều đó. Cảm ơn đã chỉ ra điều đó. – Martin