【Swift】String型(文字列)の計算式を計算する【iOS】
はじめに
今回はSwiftでString型(文字列)の計算式を実際に計算する方法について記載します。
Swift5で動作確認しています。
ちなみに M1 Mac mini を使用していますが、ビルドもシミュレータの動作も速くていい感じです。
実装例
実装例は以下のとおりです。ここでは NSExpression がポイントです。
let operand1: String = "1"
let operand2: String = "2"
let binaryOperator: String = "+"
let equation: String = operand1 + binaryOperator + operand2
print(equation) // 1+2
let expression = NSExpression(format: equation)
let answer = expression.expressionValue(with: nil, context: nil) as! Int
print(answer) // 3
上記では answer をInt型にしていますが、Double型にすれば小数点の計算もできます。
let operand1: String = "1.1"
let operand2: String = "2.2"
let binaryOperator: String = "*"
let equation: String = operand1 + binaryOperator + operand2
print(equation) // 1.1*2.2
let expression = NSExpression(format: equation)
let answer = expression.expressionValue(with: nil, context: nil) as! Double
print(answer) // 2.42
最後に
今回は、文字列の数式を実際に計算する方法を記載しました。
詳細は公式ドキュメントを参照してください。
参考になると幸いです。