Tôi có một lớp trong nhanh chóng với biến sau đây:Swift: gán chức năng để biến
var pendingFunction = ((Double, Double) -> Double)
Swift sau đó nói với tôi:
Expected member name or constructor call after type name
Nó khẳng định rằng tôi thay đổi mã của tôi để:
var pendingFunction = ((Double, Double) -> Double).self
Tôi không biết đầu mối này là gì .self
đang làm (xin lỗi tôi mới đến Swift)
sau đó tôi cố gắng phân pendingFunction
đến một chức năng mới:
pendingFunction = function
nơi function
mất hai giường đôi và trả về một đôi.
Tuy nhiên, tôi đang trình bày với các lỗi sau:
Cannot assign value of type '(Double,Double) -> Double' to type '((Double,Double)->Double).Type'
Vì vậy, câu hỏi của tôi là: .self
điều làm là gì và làm thế nào tôi có thể gán đúng một chức năng để biến?
Bạn sẽ muốn 'var pendingFunction: ((Double, Double) -> Double)' để khai báo một biến kiểu hàm. –
'var pendingFunction: ((Double, Double) -> Double) = {firstDouble, secondDouble in/* làm bạn ở đây * /}' sau đó gọi nó là 'let resultDouble = pendingFunction (double1, double2)' – ObjectAlchemist
, điều đó có nghĩa là bạn chỉ định loại hàm, chứ không phải là hàm thực tế. Ví dụ, 'var someInt: Int' có nghĩa là bạn sẽ gán một giá trị Int cụ thể cho nó, trong khi' var someInt = Int.self' có nghĩa là bạn đang sử dụng nó để đại diện cho kiểu Int như một toàn thể. –