我想实现一种类似于 Ruby 块的语言结构。所以
main()
{
i = 123
array.function(|x| { puts x + i; }) //the block needs access to the local variable i
}
应该编译得很好。我看了 1 个小时的源代码,但由于我不太擅长 CI,仍然不知道他们是如何实现它的。我的第一个想法是它是一个嵌套函数,地址作为参数传递,但我不确定嵌套函数如何访问局部变量,因为在大多数语言中这似乎是不可能的。如果有人能给我一个如何实施的想法,我会很高兴