面试题答案
一键面试可能遇到的语法兼容性问题
在Ruby 2.3中,{a: 1}
这种哈希字面量写法使用的是符号键的简化语法。然而在Ruby 3.0中,这种写法会引发语法错误,因为从Ruby 3.0开始,这种简化语法中的符号名称需要用引号包裹(除非它们是有效的标识符)。
修改方法
- 方法一:使用符号字面量语法
hash = {:a => 1}
- 方法二:使用字符串键(如果合适的话)
hash = {"a" => 1}
- 方法三:如果
a
是有效的标识符,明确写成符号hash = {:"a" => 1}