Я использую Выражение , чтобы создать очень продвинутый калькулятор, который принимает строки ввода от пользователя. Я пытаюсь добавить функции, чтобы дать калькулятору больше возможностей, однако я не могу добавить пользовательские или приведенные функции. Не могли бы вы объяснить, почему я получаю следующую ошибку.
Код, который работает
public static let mathSymbols: [Symbol: SymbolEvaluator] = {
var symbols: [Symbol: SymbolEvaluator] = [:]
symbols[.function("atan", arity: 1)] = { atan($0[0]) }
symbols[.function("abs", arity: 1)] = { abs($0[0]) }
symbols[.function("log", arity: 1)] = { log2($0[0]) }
return symbols
}()
Ввод, который не работает
symbols[.function("number", arity: 1)] = { Float($0[0]) }
symbols[.function("number", arity: 1)] = { someFunction($0[0]) }
Error
Невозможно назначить через индекс: индекс только для получения