2016-09-25 92 views
2

我试图打印出用printf一个数组的单个元素打印单个数组元素,这就是我:如何使用Ruby 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,Google搜索了一会儿,但还是无法弄清楚真糊涂......

谢谢提前!

回答

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

你得到的错误涉及到cardnil,通常意味着它是未定义的。

2

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

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