ruby – 这一行代码中的点是什么意思:65.rand(10)
发布时间:2020-12-17 02:23:22 所属栏目:百科 来源:网络整理
导读:我遇到了这行代码,无法理解点的目的.有人可以解释65中的点.兰德(10)正在做什么,这与65兰特(10)有什么不同? 对于完整上下文,我在这个8字符随机字符串生成器中看到了这段代 (0...8).map{65.+(rand(25)).chr}.join = "QSILUSPP"(0...8).map{65.+(rand(25)).chr
我遇到了这行代码,无法理解点的目的.有人可以解释65中的点.兰德(10)正在做什么,这与65兰特(10)有什么不同?
对于完整上下文,我在这个8字符随机字符串生成器中看到了这段代 (0...8).map{65.+(rand(25)).chr}.join => "QSILUSPP" (0...8).map{65.+(rand(25)).chr}.join => "BJIIBQEE" (0...8).map{65.+(rand(25)).chr}.join => "XORWVKDV" 解决方法
您可以注意到,在原始代码中有2个方法调用 – 和chr.我可以通过等效代码显示它:
65.send(:+,rand(10)).send(:chr) # is the equal to following line: 65.+(rand(10)).chr 这个技巧产生方法链,允许跳过括号.括号,65.(rand(10)).chr可以写成这样: (65 + rand(10)).chr 如果没有这个技巧,chr将应用于rand(10),结果字符串将尝试添加到65.它将产生TypeError: 65+(rand(25)).chr TypeError: String can't be coerced into Fixnum (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |