gpt4 book ai didi

ruby - 了解 ruby 奎因

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:47 25 4
gpt4 key购买 nike

我在维基百科上找到了这个代码块,作为 Ruby 中 quine(打印自身的程序)的示例。

puts <<2*2,2
puts <<2*2,2
2

但是,我不明白它是如何工作的。特别是,我没有得到的是,当我删除最后一行时,出现此错误:

syntax error, unexpected $end, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END

这些行中发生了什么?

最佳答案

<<something语法以 here-document 开始,通过 Perl 从 UNIX shell 借用 - 它基本上是一个多行字符串文字,从 << 之后的行开始当一行以 something 开头时结束.

所以在结构上,程序就是这样做的:

puts str*2,2

... 即打印两份 str然后是数字 2。

但不是变量 str ,它通过 here-document 包含一个文字字符串,其结尾标记也是数字 2:

puts <<2*2,2
puts <<2*2,2
2

所以它打印出字符串的两个副本 puts <<2*2,2 ,然后是 2。(由于用于打印它们的方法是 puts ,所以这些东西中的每一个都会自动附加一个换行符。)

关于ruby - 了解 ruby 奎因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873379/

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