Ruby 无效中断 (SyntaxError)

Ruby Invalid break (SyntaxError)

提问人:mila002 提问时间:9/6/2023 更新时间:9/6/2023 访问量:88

问:

我有一段非常简单的代码的问题:

def cond(x,y)
       if x =~ /#{y}/
                puts "ok"
        else
                puts "not ok"
                break
        end
end

result = `ls /path/to/some/file | grep something`
cond(result,"nothing")

在那里我得到一个错误

Traceback (most recent call last):
./nodeexp.rb: ./nodeexp.rb:13: Invalid break (SyntaxError)

相同的代码,但未在 def 中使用,工作正常:

result = `ls /path/to/some/file | grep something`
if result =~ /nothing/
        puts "ok"
else
        puts "nie ok"
        break
end

我错过了什么?

红宝石 休息

评论

2赞 Luatic 9/6/2023
不,相同的代码“not in def”不能正常工作。 中断循环,必须在循环中使用。不能在函数 () 中使用。我假设您省略的“not in def”的上下文是一个循环。breakbreakdef
0赞 Cary Swoveland 9/7/2023
@Luatic,这在三个方面是不正确的:1)break既可以在块中使用,也可以在循环中使用;2)用于定义方法,而不是函数(模块方法有时称为“函数”);3)方法可能包含循环和块,因此很明显它们可能包含语句。defbreak

答: 暂无答案