Ruby Koans在about_blocks.rb 中有以下练习:
def method_with_block_arguments
yield("Jim")
end
def test_blocks_can_take_arguments
method_with_block_arguments do |argument|
assert_equal __, argument
end
end
Run Code Online (Sandbox Code Playgroud)
我知道答案是assert_equal "Jim", argument,但我很难理解发生了什么。具体来说:
argument还是assert_equal...块?yield做着因为method_with_block_arguments返回“吉姆”没有yield?我正在研究Ruby Koans,并提出了问题#193:
class Dog2
def set_name(a_name)
@name = a_name
end
end
def test_instance_variables_can_be_set_by_assigning_to_them
fido = Dog2.new
assert_equal [], fido.instance_variables
fido.set_name("Fido")
assert_equal [___], fido.instance_variables
end
Run Code Online (Sandbox Code Playgroud)
答案是"assert_equal : @name,fido.instance_variables".我知道冒号(:)表示符号,atsign(@)表示实例变量.但是,我还没有找到关于结合冒号和atsign意味着什么的文档.
它是什么意思,它是如何使用的?谢谢!