gpt4 book ai didi

ruby - 这个 Ruby 代码如何工作 - if-stmt with ranges ?

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

我目前正在学习 Ruby,但我似乎无法理解 if/start/../end 的作用...有帮助吗?

while gets
print if /start/../end/
end

最佳答案

既然您提到您是 Ruby 的新手,首先值得注意的是您在示例中处理正则表达式 (regex) - 两个正斜杠之间分隔的任何内容:

/start/   # a regular expression literal

正则表达式是一种从较大字符串中匹配特定字母组合的强大方法。

"To start means to begin." =~ /start/  #=> true, because 'start' is in the string. 

双点符号是触发器运算符,一个有争议的结构可能是从 Perl 继承的,通常不建议使用,因为它会导致混淆。

意思如下:它将共同评估为假,直到左侧操作数为真。在这一点上,它将共同评估为真。然而,它只会保持为真,直到右侧操作数的计算结果为真 - 此时它将再次共同计算为假。

因此使用上面的示例:

while gets
print if /start/../end/
end
  1. 直到输入'start',整个表达式都是假的,什么都不打印。
  2. 当输入“start”时,整个表达式为真,因此在此之后输入的所有内容也将被打印出来。 (尽管不是“开始”)
  3. 一旦输入“end”,整个表达式的计算结果为 false,并且从那一点开始的任何内容都不会被打印出来。

关于ruby - 这个 Ruby 代码如何工作 - if-stmt with ranges ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913252/

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