2

我想实现一种类似于 Ruby 块的语言结构。所以

main()
{
    i = 123
    array.function(|x| { puts x + i; }) //the block needs access to the local variable i
}

应该编译得很好。我看了 1 个小时的源代码,但由于我不太擅长 CI,仍然不知道他们是如何实现它的。我的第一个想法是它是一个嵌套函数,地址作为参数传递,但我不确定嵌套函数如何访问局部变量,因为在大多数语言中这似乎是不可能的。如果有人能给我一个如何实施的想法,我会很高兴

4

1 回答 1

0

这是 C 中代码块和产量的实现,它可能会对您有所帮助。 http://tilarids.blogspot.com/2012/03/ruby-like-blocks-and-yield-keyword-in-c.html

于 2012-07-20T08:39:12.990 回答