【发布时间】:2017-04-25 20:11:30
【问题描述】:
我有一个带有以下变量的 swift 类:
var pendingFunction = ((Double, Double) -> Double)
斯威夫特然后告诉我:
类型名称后的预期成员名称或构造函数调用
它坚持要我将代码更改为:
var pendingFunction = ((Double, Double) -> Double).self
我不知道这个 .self 是做什么的(对不起,我是 Swift 新手)
然后我尝试将pendingFunction 分配给一个新函数:
pendingFunction = function
function 接受两个 Double 并返回一个 Double。
但是,我收到以下错误:
无法将类型 '(Double,Double) -> Double' 的值赋给类型 '((Double,Double)->Double).Type'
所以我的问题是:.self 的作用是什么?如何正确地将函数分配给变量?
【问题讨论】:
-
你会希望
var pendingFunction: ((Double, Double) -> Double)声明一个函数类型的变量。 -
'var pendingFunction: ((Double, Double) -> Double) = { firstDouble, secondDouble in /* 你在这儿放东西吗*/ }' 然后调用它'let resultDouble = pendingFunction(double1, double2 )'
-
对于 .self,这意味着您正在分配函数的类型,而不是实际的函数。例如,
var someInt: Int表示您将为其分配一个特定的 Int 值,而var someInt = Int.self表示您将使用它来表示整个 Int 类型。
标签: swift