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

Arrays 如何使用Ruby printf()函数打印单个数组元素,arrays,ruby,printf,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) 我真的很困惑如何做这个红宝石,谷歌搜索了一段时间,但仍然无法找出 提前谢谢 printf是传统的C方式,但是

我正在尝试使用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)
我真的很困惑如何做这个红宝石,谷歌搜索了一段时间,但仍然无法找出


提前谢谢

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") ]

您得到的错误与
nil
有关,这通常意味着它未定义。

这与
printf
毫无关系。您正在对变量
card
引用的对象调用
[]
方法,但该对象是
nil
对象,它没有
[]
方法

换句话说:
cards
根本不是数组,它是
nil