gpt4 book ai didi

ruby - 从 Ruby Koan nº 75 中可以学到什么?

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

Koan 代码,编号 75:

      in_ruby_version("mri") do
RubyConstant = "What is the sound of one hand clapping?"
def test_constants_become_symbols
all_symbols = Symbol.all_symbols

assert_equal __, all_symbols.include?(__)
end
end

我对此有点困惑,因为我刚刚发现针对“all_symbols.include?(__)”测试的任何符号都将匹配“true”。例如,以下所有内容都应该有效:

    assert_equal true, all_symbols.include?(:RubyConstant)
assert_equal true, all_symbols.include?(:"What is the sound of one hand clapping?")
assert_equal true, all_symbols.include?(:AnythingElseYouCouldWriteHere)

用“constants_become_symbols”到底能学到什么?

最佳答案

在ruby中,以大写字母开头的变量变为constants . koan 的目标是教您常量成为 ruby​​ 中的符号并添加到 ruby​​ 的符号表中。

in_ruby_version("mri") do
RubyConstant = "What is the sound of one hand clapping?"
def test_constants_become_symbols
all_symbols = Symbol.all_symbols

assert_equal true, all_symbols.include?("RubyConstant".to_sym)
end
end

另请注意它是如何用 "RubyConstant".to_sym 代替 :RubyConstant 的。这是为了避免混淆,因为 ruby​​ 解释器在解析 ruby​​ 函数时会自动创建一个符号,如 here 所述。 .

关于ruby - 从 Ruby Koan nº 75 中可以学到什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282321/

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