2016-12-25 27 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

相关问题