ruby如何跟踪变量
发布时间:2020-12-16 20:59:46 所属栏目:百科 来源:网络整理
导读:参见英文答案 Confusion with the assignment operation inside a falsy `if` block 3个 我对Ruby跟踪变量的方式感到困惑.例如: 情况1: if true a end 会给你一个错误说明未定义的局部变量或方法a. 案例2: if false a end a 会给你同样的第二个a的错误,而
参见英文答案 >
Confusion with the assignment operation inside a falsy `if` block 3个
我对Ruby跟踪变量的方式感到困惑.例如: 情况1: if true a end 会给你一个错误说明未定义的局部变量或方法a. 案例2: if false a end a 会给你同样的第二个a的错误,而不是第一个a. 案例3: if false a=2 end a #=> nil defined? a #=> 'local-variable' 如果比较案例2和案例3,则在案例2中它首先忽略错误a.我认为它因为ruby的执行路径没有达到变量a由于条件错误.当我在第3种情况下进行赋值时,它也是一样的.它给了我一个已定义但变量为nil的变量.有人可以解释它的工作方式吗? 解决方法
在解析时,如果Ruby发现任何赋值如a = 2,则在那一刻创建局部变量.如果你放入任何错误的条件表达式内部并不重要.否则,如果在使用赋值(=)运算符创建之前尝试使用诸如此处的变量,则会将合法错误作为未定义的局部变量或方法a抛出.
看Confusion with the assignment operation inside the fallacy (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |