2016-10-01 51 views
-3

访问参数我有这样的事情:斯威夫特如何在功能

enum Op { 
    case Operation(String, (Double, Double) -> Double) 
} 

现在,我想这样做:

var description: String { 
    get { 
     switch Op { 
      case .Operation(let symbol, /* how can I access the two (Double, Double) from (Double, Double) -> Double? */): 
       return Double1 + symbol + Double2 
     } 
    } 
} 

回答

0

你的问题:

我怎么能访问两个(Double, Double)

...没有任何意义。没有双打进入。第二个值是(Double, Double) -> Double。这是一个函数。不是称为功能;只是一个功能。术语Double表示类型,而不是

你可以捕获这个函数。你可以这个函数调用你自己。但是那里没有双打。你有看到?

下面是一个实际工作代码的例子;尝试在操场上玩:

你看到了吗?我没有两个双打;我提供他们。

+0

是否有没有办法将Double作为类型赋予该函数值?就像我用String和'let symbol'做的那样? – user6867907

+3

看看我给你的代码。我告诉你你可以做什么。 - 如果你不明白'(Double,Double) - > Double' _is_,你为什么用这种方式来使用它?您是否在不知道自己正在复制的情况下复制这段代码? – matt