Я сейчас нахожусь в процессе внедрения этого блога о vms и компиляторах на Python в Swift. Я столкнулся с проблемой здесь:
У меня есть функция в Any
. У меня есть свои аргументы в [Any]
. Я хочу вызвать эту функцию, не зная, что это за аргументы. В посте Python, поскольку Python динамический, он прост, но в Swift я предполагаю, что это невозможно. Есть ли у вас какие-либо способы его реализации?
let numberOfArgs: Int = try intify(instruction.arg)
let arguments: [Any] = (0 ..< numberOfArgs).compactMap { _ in
return (stack.pop() as? Instruction)?.arg
}
let function: Any = try popVal(&stack)
function
- это закрытие Swift. например, (Int, Int) -> Int
, (String, (Bool, Date) -> Date) -> Float
В заключение хочу позвонить function
с arguments