为什么不重复“重复”* 3`与Ruby中的`3 *“重复”`相同?
发布时间:2020-12-16 19:27:30 所属栏目:百科 来源:网络整理
导读:当我输入这个: puts 'repeat' * 3 我明白了: repeat repeat repeat 但如果我这样做,它就无法运作: puts 3 * 'repeat' 为什么? 解决方法 在Ruby中,当你调用* b时,你实际上正在调用一个名为*的方法.试试这个,例如: a = 5= 5b = 6= 6a.*(b)= 30c = "hello"
当我输入这个:
puts 'repeat' * 3 我明白了: >> repeat repeat repeat 但如果我这样做,它就无法运作: puts 3 * 'repeat' 为什么? 解决方法
在Ruby中,当你调用* b时,你实际上正在调用一个名为*的方法.试试这个,例如:
a = 5 => 5 b = 6 => 6 a.*(b) => 30 c = "hello" => "hello" c.*(a) => "hellohellohellohellohello" 因此< String> *< Fixnum>工作正常,因为String上的*方法了解如何处理整数.它通过将自身的多个副本连接在一起来做出响应. 但是当你做3 *“重复”时,它在Fixnum上用String参数调用*.这不起作用,因为Fixnum的*方法希望看到另一种数字类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |