Ruby 语法错误,意外的输入结束,期待 keyword_end
Ruby syntax error, unexpected end-of-input, expecting keyword_end
我正在尝试创建纸牌游戏的基础知识。当我 creating/testing 我的初始套牌时,当我 运行 我的 ruby 代码时,我不断收到以下错误消息。
gofish.rb:30: syntax error, unexpected '\n', expecting :: or '[' or '.'
gofish.rb:73: syntax error, unexpected end-of-input, expecting keyword_end
deck.add_cards
我查找了可能的解决方案,但似乎找不到我遗漏的 end。它可能是别的东西吗?我是 ruby.
的新手
class Deck
def initialize
@ranks = %w(2 3 4 5 6 7 8 9 10 Jack Queen King Ace)
@suits = %w(Clubs Spades Hearts Diamonds)
@cards = []
@ranks.each do |rank|
@suits.each do |suit|
@cards << Card.new(rank, suit)
end
end
end
def shuffle
@cards.shuffle
end
def deal
@cards.shift
end
def empty?
@cards.empty?
end
def add_cards(*cards)
*cards.each do |card|
@cards << card
end #line 30
end
def to_s
output = ""
@cards.each do |card|
output = output + card.to_s + "\n"
end
return output
end
end
class Hand
def initialize
end
def search()
end
end
class Card
attr_reader :rank, :suit
def initialize(rank, suit)
@rank = rank
@suit = suit
end
def to_s
"#{@rank} of #{@suit}"
end
end
deck = Deck.new
puts deck.to_s
deck.shuffle
puts deck.to_s
deck.deal
deck.add_cards #line 73
您不应在方法内部使用 splat 运算符,只需将其保留在参数中即可:
def add_cards(*cards)
cards.each do |card|
@cards << card
end
end
我正在尝试创建纸牌游戏的基础知识。当我 creating/testing 我的初始套牌时,当我 运行 我的 ruby 代码时,我不断收到以下错误消息。
gofish.rb:30: syntax error, unexpected '\n', expecting :: or '[' or '.'
gofish.rb:73: syntax error, unexpected end-of-input, expecting keyword_end
deck.add_cards
我查找了可能的解决方案,但似乎找不到我遗漏的 end。它可能是别的东西吗?我是 ruby.
的新手class Deck
def initialize
@ranks = %w(2 3 4 5 6 7 8 9 10 Jack Queen King Ace)
@suits = %w(Clubs Spades Hearts Diamonds)
@cards = []
@ranks.each do |rank|
@suits.each do |suit|
@cards << Card.new(rank, suit)
end
end
end
def shuffle
@cards.shuffle
end
def deal
@cards.shift
end
def empty?
@cards.empty?
end
def add_cards(*cards)
*cards.each do |card|
@cards << card
end #line 30
end
def to_s
output = ""
@cards.each do |card|
output = output + card.to_s + "\n"
end
return output
end
end
class Hand
def initialize
end
def search()
end
end
class Card
attr_reader :rank, :suit
def initialize(rank, suit)
@rank = rank
@suit = suit
end
def to_s
"#{@rank} of #{@suit}"
end
end
deck = Deck.new
puts deck.to_s
deck.shuffle
puts deck.to_s
deck.deal
deck.add_cards #line 73
您不应在方法内部使用 splat 运算符,只需将其保留在参数中即可:
def add_cards(*cards)
cards.each do |card|
@cards << card
end
end