在Mac的TextEdit中输入字符串为何报‘undefined local variable or method’错误?
TextEdit中Ruby
puts "text"报错的原因分析 - 问题根源是TextEdit默认开启的智能引号自动替换功能。TextEdit会把你手动输入的标准直引号
"自动转换成不对称的弯引号“/”,而Ruby的语法只识别标准直引号。 - 当你写
puts "text"时,实际保存的代码是puts “text”,Ruby解析时会把“text”误认为是一个未定义的局部变量或方法,因此抛出undefined local variable or method '"text"'的NameError。 - 数值类代码不需要引号,所以不受这个替换功能影响,能正常运行。
如果之后还要用TextEdit写Ruby代码,可通过以下方式解决:打开TextEdit偏好设置,进入「编辑」标签页,取消勾选「使用智能引号和破折号」,这样输入的引号就会保持标准格式,Ruby就能正常解析了。
内容的提问来源于stack exchange,提问作者Shalini J
相关产品推荐
相关产品推荐

