2015-07-01 3 views
0

Мне интересно, есть ли какие-либо хорошие математические парсеры в Swift. То есть, он может взять строку и решить ее. Мне нужно, чтобы у него были факториалы, экспоненты, квадратные корни и все основные арифметические операторы. Я хочу, чтобы он был встроен в Swift, а не в стороннюю сторону (например, DDMathParser и GCMathParser) Было бы неплохо, если бы вы могли пару из них.Математический парсер в Swift

+3

Учитывая, что для этого нет каких-либо предусмотренных Apple модулей, это по необходимости было бы сторонним решением. Такие вещи, как DDMathParser, могут использоваться непосредственно из Swift. –

+0

DDMathParser предназначен для Objective-C, я пытался использовать его в swift, но всякий раз, когда я его запускаю, он всегда вылетает, хотя я его импортировал. –

+0

Написано в Objective-C, DDMathParser действительно может использоваться из Swift. У Swift только была проблема с NSDecimal structs до 1.2, но это было исправлено на языке. Использование его из Swift не должно быть источником сбоев, поэтому вам может потребоваться изучить трассировки стека, которые вы получаете от этих сбоев, чтобы определить причину их возникновения. –

ответ

4

Не существует математического синтаксического анализатора, «встроенного в Swift», как вы имеете в виду.

Существует выражение оценщик, входящий в состав фреймворка Foundation, который является частью iOS и Mac OS X и доступен как из Objective-C, так и Swift. Это называется NSExpression.

Пример:

let expression = NSExpression(format: "2+3*4") 
print(expression.expressionValueWithObject(nil, context: nil)) 
// prints "14" 

Это не включает в себя функцию факториала, но this article описывает, как добавить свои собственные функции, и использует факторный в качестве примера. Вам придется перевести пример из Objective-C в Swift самостоятельно.

+0

Я добавил ошибку и код, который я использовал –

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