小编Mar*_*ark的帖子

Ruby Koans:块和参数 (test_blocks_can_take_arguments)

Ruby Koansabout_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 yield block

1
推荐指数
1
解决办法
301
查看次数

带有前面冒号的Ruby实例变量是什么意思(:@name)?

我正在研究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意味着什么的文档.

它是什么意思,它是如何使用的?谢谢!

ruby symbols instance-variables

1
推荐指数
1
解决办法
319
查看次数

标签 统计

ruby ×2

block ×1

instance-variables ×1

symbols ×1

yield ×1