ruby – 绑定与分配
发布时间:2020-12-17 03:07:57 所属栏目:百科 来源:网络整理
导读:我已经阅读了许多关于赋值和绑定之间差异的文章,但它还没有点击(特别是在命令式语言与没有变异的语境中). 我在IRC问过,有人提到这两个例子说明了区别,但后来我不得不去看,我没有看到完整的解释. 有人可以详细解释这是如何/为什么这样有效,以帮助说明差异? r
我已经阅读了许多关于赋值和绑定之间差异的文章,但它还没有点击(特别是在命令式语言与没有变异的语境中).
我在IRC问过,有人提到这两个例子说明了区别,但后来我不得不去看,我没有看到完整的解释. 有人可以详细解释这是如何/为什么这样有效,以帮助说明差异? ruby x = 1; f = lambda { x }; x = 2; f.call #=> 2 酏 x = 1; f = fn -> x end; x = 2; f.() #=> 1 解决方法
我以前听过这个解释,看起来很不错:
在其他语言中,如果您有作业,则更像是在行李箱中放置一个值.实际上,您可以更改行李箱中的值并输入不同的值. 如果你有一个带有价值的行李箱,在Elixir中,你会在上面放一个标签.您可以更改标签,但行李箱中的值仍然相同. 所以,举例来说: iex(1)> x = 1 iex(2)> f = fn -> x end iex(3)> x = 2 iex(4)> f.() 1 >你有一个装有1的手提箱,你将它标记为x. 他会说“1”,因为行李箱没变.虽然,你把它的标签从它上面拿出来放在不同的行李箱上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |