gpt4 book ai didi

ruby - Ruby block 是如何实现的(在编译器中)

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:21 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

关于ruby - Ruby block 是如何实现的(在编译器中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com