open中break使用失败

在使用open do过程中,使用break会报错:

while true
    open("A.txt","w+") do f
        break
    end
end

使用open就不会报错

while true
    f = open("A.txt","w+")
    close(f)
    break
end

这个错误信息非常清楚:

ERROR: syntax: break or continue outside loop

本质上,这种写法等价于

function do_something(f)
    break
end

while true
    open(do_something, "A.txt","w+")
end

可以再看一下 do 语法的含义来尝试理解一下:

do x 语法创建一个带有参数 x 的匿名函数

1 个赞

懂了,感谢!!!