如何使用Ruby printf()函数打印单个数组元素

时间:2016-09-25 03:52:12

标签: arrays ruby printf

我正在尝试使用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,谷歌用了一段时间,但仍然无法弄明白......

提前致谢!

2 个答案:

答案 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有关,这通常意味着它未定义。