如何用Ruby哈希实现JavaScript ES6的对象属性简写?
嘿,这个问题问得太贴合日常开发了!在Ruby里确实有和ES6对象简写完全对应的哈希写法,而且用法相当直观。
先回顾下你提到的ES6写法:
let a = 1; let b = 2; const myObject = { a, b }; // 等价于 { a: a, b: b }
在Ruby 2.1及以上版本中,你可以用变量名加冒号的简写语法来创建键名与变量名一致的哈希,完全不用重复写键和值:
a = 1 b = 2 my_hash = {a:, b:} # 等价于 {a: a, b: b}
运行这段代码后,my_hash的内容就是{:a=>1, :b=>2},和你预期的效果完全一致。这里要注意,Ruby哈希默认的键是符号(Symbol),所以这个简写针对的是符号键的场景——这也是Ruby开发中最常用的哈希键类型。
如果你的Ruby版本低于2.1(现在很少见了,毕竟这个版本是2013年发布的),那只能用完整写法,就像ES6之前的JS那样:
a = 1 b = 2 my_hash = {a: a, b: b}
总的来说,现在主流的Ruby环境都支持这种简写,用起来和ES6的对象简写一样省心!
内容的提问来源于stack exchange,提问作者stratis
相关产品推荐
相关产品推荐

