加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么不重复“重复”* 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的*方法希望看到另一种数字类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读