2016-10-01 31 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