2016-12-25 36 views
-6

由於sqrt是我應該引用的名稱,有其他方式可以引用一個函數(例如全名:sqrt(double))嗎?如果我想在swift中引用一個函數的全名,我該怎麼辦?

我知道sqrt是要引用的合法名稱,但它只是一個較短的寫法,我可以寫一個sqrt函數的全名嗎?

import Foundation 

class CalculatorBrain{ 
private var accumulator: Double = 0.0 
func setOperand(operand: Double){ 
    accumulator = operand 
} 

var operations: Dictionary<String, Operation> = [ 
    "√" : Operation.UnaryOperation(sqrt), // (sqrt(double)) 
] 

enum Operation { 
    case UnaryOperation((Double)->Double) 
} 

func performOperation(symbol: String){ 
    if let abc = operations[symbol]{ 
     switch abc { 
     case .Constant(let aa): 
      accumulator = aa 
     case .UnaryOperation:break 
     case .BinaryOperation: break 
     case .Equals: break 
     } 
    } 
} 

var result:Double{ 
    get{ 
     return accumulator 
    } 
} 
} 
+0

這與枚舉,關聯值或任何其他無關。 'sqrt'只是引用一個函數而不調用它。 – Alexander

+0

是的,如果我想引用全名,該怎麼辦? –

+2

這甚至意味着什麼? – Alexander

回答

1

因爲sqrt是該函數的名稱。你不是在呼喚它,也不希望這樣做;你是就是指。而這個名字就是你如何做到的。

+0

可能要閱讀我的書:http://www.apeth.com/swiftBook/ch02.html#_function_references_and_selectors – matt

+0

那麼我應該怎麼做,如果我想添加一個全名? –

+0

@武昌裏你是什麼意思「全名」?有人已經問過,而你還沒有澄清。 – Carcigenicate

相關問題