我有这样的事情:
System.Timers
现在我想这样做:
enum Op {
case Operation(String, (Double, Double) -> Double)
}
答案 0 :(得分:0)
你的问题:
如何访问这两个
(Double, Double)
......毫无意义。没有双打可访问。第二个值是(Double, Double) -> Double
。这是功能。不是调用函数;只是一个功能。术语Double表示类型,而不是值。
您可以捕获此功能。您可以调用此功能,自己。但那里没有双打。你知道吗?
以下是实际工作代码的示例;在操场上试试:
enum Op {
case Operation(String, (Double, Double) -> Double)
}
func f (x:Double, y:Double) -> Double { return x + y }
let op = Op.Operation("howdy", f)
switch op {
case .Operation(let symbol, let function) :
print(symbol) // Howdy
print(function(1,2)) // 3
}
你知道吗?我没有获取两个双打;我提供了他们。