了解 Ruby 方法参数语法
Understanding Ruby method parameters syntax
我一直在关注 Pluralsight 上的 RSpec 教程,以创建基本纸牌游戏。当 class 定义为:
class Card
def initialize(suit:, rank:)
@suit = suit
@rank =
case rank
when :jack then 11
when :queen then 12
when :king then 13
else rank
end
end
end
RSpec测试代码例如:
RSpec.describe 'a playing card' do
it 'has a suit' do
raise unless Card.new(suit: :spades, rank: 4).suit == :spades
end
end
我还没有遇到过这样的方法参数语法(suit: :spades, rank: 4)
。谁能解释一下这是什么意思,或者告诉我在哪里可以找到它的正确方向?
它被称为关键字参数。与 位置参数 不同,您可以按任何顺序传递它们,但您必须提供它们的名称。这可以极大地提高可读性,特别是对于具有更高 arity 的方法。 More on the subject
我一直在关注 Pluralsight 上的 RSpec 教程,以创建基本纸牌游戏。当 class 定义为:
class Card
def initialize(suit:, rank:)
@suit = suit
@rank =
case rank
when :jack then 11
when :queen then 12
when :king then 13
else rank
end
end
end
RSpec测试代码例如:
RSpec.describe 'a playing card' do
it 'has a suit' do
raise unless Card.new(suit: :spades, rank: 4).suit == :spades
end
end
我还没有遇到过这样的方法参数语法(suit: :spades, rank: 4)
。谁能解释一下这是什么意思,或者告诉我在哪里可以找到它的正确方向?
它被称为关键字参数。与 位置参数 不同,您可以按任何顺序传递它们,但您必须提供它们的名称。这可以极大地提高可读性,特别是对于具有更高 arity 的方法。 More on the subject