我正在尝试使用printf打印出数组的各个元素,这就是我所拥有的:
printf("\nCard %d: %s\t%d\t%s\t%s\n ", cardNum,card[0],card[1],card[2],card[3])
这并不是真的有用,好吧,有点像,它给我一个这样的错误:
undefined method `[]' for nil:NilClass (NoMethodError)
我真的很困惑如何做这个Ruby,谷歌用了一段时间,但仍然无法弄明白......
提前致谢!
答案 0 :(得分:2)
这与printf
完全没有关系。您正在调用变量[]
引用的对象上的card
方法,但该对象是没有nil
方法的[]
对象。
换句话说:cards
根本不是数组,而是nil
。
答案 1 :(得分:0)
printf
是传统的C方式,但有一种更方便的简写:
card = %w[ KD 2C 4D 9S ]
card_num = 1
puts "\nCard %d: %s\t%s\t%s\t%s\n " % [ card_num ] + card
但更好:
puts "\nCard %d: %s\t%s\n " % [ card_num, card.join("\t") ]
您获得的错误与card
nil
有关,这通常意味着它未定义。