gpt4 book ai didi

ruby - 这是有效的 ruby​​ 语法吗?

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

if step.include? "apples" or "banana" or "cheese"
say "yay"
end

最佳答案

您的代码有几个问题。

step.include? "apples" or "banana" or "cheese"

此表达式的计算结果为:

step.include?("apples") or ("banana") or ("cheese")

因为 Ruby 将除 falsenil 之外的所有值都视为 true,所以此表达式将始终为 true。 (在这种情况下,值 "banana"short-circuit 表达式并使其计算为真,即使 step 的值不包含这三个中的任何一个。)

您的意图是:

step.include? "apples" or step.include? "banana" or step.include? "cheese"

但是,这是低效的。它还使用 or 而不是 ||,后者具有不同的运算符优先级,通常不应在 if 条件中使用。

正常用法:

do_something or raise "Something went wrong."

更好的写法是:

step =~ /apples|banana|cheese/

这使用了 regular expression ,您将在 Ruby 中大量使用它。

最后,Ruby 中没有say 方法,除非您定义一个方法。通常你会通过调用 puts 来打印一些东西。

所以最终的代码是这样的:

if step =~ /apples|banana|cheese/
puts "yay"
end

关于ruby - 这是有效的 ruby​​ 语法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634822/

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