gpt4 book ai didi

ruby - 在 Ruby 中,将 "after-the-value-if-expression"放入 block 中是否违法?

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:39 25 4
gpt4 key购买 nike

错误:

rescue_from 'NotAuthorizedException' do |exception|
a = 'b' if true else 'c'
end

没有错误:

rescue_from 'NotAuthorizedException' do |exception|
a = 'b'
end

我得到的错误是:syntax error, unexpected keyword_else, expecting keyword_end

我是否遗漏了一些明显的东西?即使我在方法参数周围添加括号时也会发生这种情况:rescue_from('NotAuthorizedException') ...

更新:

嗯,sepp2k 是对的:语法无效。 但是,至少在我的 Rails 应用程序中运行时,以下方法会导致 object 被引发为异常值 'a' .我将尝试创建一个可重现的独立程序,其中此语法似乎是有效的。

def test
object = 'a' if true else 'b'
raise object.to_yaml
end

更新 2:

它在 irb 中工作(没有 to_yaml),但显示以下警告:

warning: else without rescue is useless

更新 3:

def test
object = 'a' if true else 'b'
end

这会导致相同的警告,但会显示 'b'。我挖完了!

最佳答案

a = 'b' if true else 'c'

是 ruby​​ 中的无效语法,无论它是否在 block 中(您可能正在考虑语法合法的 python)。你需要要么使用

a = if true then 'b' else 'c' end

a = true ? 'b' : 'c'

关于ruby - 在 Ruby 中,将 "after-the-value-if-expression"放入 block 中是否违法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918749/

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