2015-09-30 2 views
0

Я работаю над приложением, в котором простые математические выражения передаются как строки (например, «2 + 3»). Мне нужно выполнить эти выражения, чтобы убедиться, что они равны цели.Swift - преобразование строки в выражение

В Mathematica/Wolfram Language можно преобразовать строки в выражения с помощью простой команды ToExpression []. Есть ли что-то эквивалентное в Свифте? Если нет, как можно преобразовать строку в работоспособную математику?

ответ

2

Использование [NSExpression][1], как это ...

let expression = NSExpression(format:"2+3") 
if let result = expression.expressionValueWithObject(nil, context: nil) as? NSNumber { 
    print(result) 
} else { 
    print("error evaluating expression") 
} 

Вот хороший blog post from NSHipster об использовании NSExpression (включает Swift примеры).

+0

Это именно то, что мне нужно. В расширении моего исходного вопроса есть ли механизм для извлечения операторов и операндов из выражения? Например, чтобы извлечь (2,3,3) и (+, /) из «2 + 3/3»? –

+0

Не обращайте внимания на мой последний вопрос - ответ на этот вопрос содержится в компонентахSeparatedByCharactersInSet() –

Смежные вопросы