我一直在关注Pluralsight上的RSpec教程来创建一个基本的纸牌游戏。当类定义为:
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)
这样的方法参数语法。有人可以解释这意味着什么,或者指出我在哪里查找这个方向的正确方向?
答案 0 :(得分:4)
它被称为关键字参数。与位置参数不同,您可以按任何顺序传递它们,但您必须提供它们的名称。这可以极大地提高可读性,特别是对于具有更高arity的方法。 More on the subject