"1\#@ #9" "1#@X#9" #=> "1#9" "-6ren">
gpt4 book ai didi

ruby - 字符串中的 `@` 符号导致意外结果

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

看起来,当 @ 符号与 # 符号配对时,它开始忽略某些字符。它甚至在 %{} 分隔符内执行此操作。这是怎么回事?

"1#@ #9"
#=> "1\#@ #9"
"1#@X#9"
#=> "1#9"
"1#@XXX#9"
#=> "1#9"
"1#@X123#9"
#=> "1#9"
"1#\@X123#9"
#=> "1\#@X123#9"
"#"
#=> "#"
"@"
#=> "@"
"\@"
#=> "@"
"@XX"
#=> "@XX"
"1@XX1"
#=> "1@XX1"
"#@XX#"
#=> "#"

最佳答案

@ 是 Ruby 中实例变量的标志,当它跟在 # 后面时,表示插值,插值发生。在您的示例中,实例变量 @X@XX 被调用,我想它们没有定义。如果是,那么这些变量默认为nil,通过to_s扩展为空字符串进行插值。当#@不能解释为插值时(例如@是无效的实例变量名),则逐字识别为#@,并且在检查中插入转义字符。

关于ruby - 字符串中的 `@` 符号导致意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28239735/

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