【发布时间】:2019-01-09 23:36:18
【问题描述】:
我目前正在 Swift 中实现this blog post about vms and compilers in Python。我在这里遇到了问题:
我在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
总之,我想用arguments打电话给function
【问题讨论】:
标签: python swift compilation compiler-construction virtual-machine