草庐IT

ruby 心印 : Where are the quotes in this return value?

我正在研究以下RubyKoan:classDog7attr_reader:namedefinitialize(initial_name)@name=initial_nameenddefget_selfselfenddefto_s__enddefinspect""endenddeftest_inside_a_method_self_refers_to_the_containing_objectfido=Dog7.new("Fido")fidos_self=fido.get_selfassert_equal"",fidos_selfenddeftest_to_s_provides_a_st

ruby 心印 : explicit scoping on a class definition part 2

我想澄清这个原始post的一些事情.答案建议Ruby按以下顺序搜索常量定义:封闭范围任何外部范围(重复直到达到顶层)包含的模块父类(superclass)对象内核所以澄清一下,在第(1-6)步是为legs_in_oyster找到的常量LEGS的值?它来自父类(superclass)Animal吗?类MyAnimals的范围是否因为不被视为封闭范围而被忽略?这是由于明确的MyAnimals::Oyster类定义吗?谢谢!只是想了解。这是代码:classAnimalLEGS=4deflegs_in_animalLEGSendclassNestedAnimaldeflegs_in_neste

ruby 心印 : Why convert list of symbols to strings

我指的是RubyKoans中about_symbols.rb中的这个测试https://github.com/edgecase/ruby_koans/blob/master/src/about_symbols.rb#L26deftest_method_names_become_symbolssymbols_as_strings=Symbol.all_symbols.map{|x|x.to_s}assert_equaltrue,symbols_as_strings.include?("test_method_names_become_symbols")end#THINKABOUTIT:#

ruby 心印 : test_sometimes_missing_parentheses_are_ambiguous

我正在完成Neo的RubyKoans(http://rubykoans.com/)。在about_methods.rb中,koan指示更正以下当前已损坏的eval:#(NOTE:WeareUsingevalbelowbecausetheexamplecodeis#consideredtobesyntacticallyinvalid).deftest_sometimes_missing_parentheses_are_ambiguouseval"assert_equal(5),my_global_method(2,3)"#ENABLECHECK##Rubydoesn'tknowifyou

ruby 心印 : regex parentheses "capture" matched content?

我正在浏览about_regular_expressions.rb并且不明白这里到底发生了什么:deftest_variables_can_also_be_used_to_access_capturesassert_equal"Gray,James","Name:Gray,James"[/(\w+),(\w+)/]assert_equal"Gray",$1assert_equal"James",$2end在我看来,似乎在正则表达式中使用括号会在幕后创建两个新变量($1和$2)。这是正确的吗?但后来我这样做了:deftest_variables_can_also_be_used_to_a