我正在写一个小应用程序,我想用作计算器.对于计算器的运算符,我从switch语句开始,例如乘以两个值.因此我创建了一个字典,它工作得很好.
我现在发现,如果我写一些类似的东西,它将非常有用并且可以节省代码
number1 operationButton.currentTitle number2
Run Code Online (Sandbox Code Playgroud)
其中,operationButton.currentTitle将代表+,-,*或/.
我现在的问题是如何将字符串转换operationButton.currentTitle为这些运算符的函数调用?
在Swift中,您可以将函数视为变量 - 例如,您可以将它们存储在字典中.此外,Swift中的运算符只是具有非字母名称的函数(可以使用中缀等).
这意味着您可以在字典中存储二进制操作:
let operators: [String:(Double,Double)->Double] = [
"plus": (+),
"minus": (-),
"divide": (/),
"multiply": (*),
]
Run Code Online (Sandbox Code Playgroud)
然后查找这些操作并使用您获得的任何操作,如下所示:
if let op = operators["divide"] {
op(3,4) // returns 0.75
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |