gpt4 book ai didi

ruby - 这行代码: 65. +rand(10)中的点是什么意思

转载 作者:数据小太阳 更新时间:2023-10-29 07:33:55 24 4
gpt4 key购买 nike

我遇到了这行代码,无法理解点的用途。有人能解释一下 65 中的点是什么吗? + rand(10) 正在做什么,这与 65 + rand(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

关于ruby - 这行代码: 65. +rand(10)中的点是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26456123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com