这些是Codecademy的说明:
We have an array of strings we’d like to later use as hash keys,but we’d rather they be symbols. Create a new array,symbols. Use
.each
to iterate over the strings array and convert each string to a symbol,adding those symbols to symbols.
这是我写的代码(提供了字符串数组):
strings = ["HTML","CSS","JavaScript","Python","Ruby"] symbols = [] strings.each { |x| x.to_sym } symbols.push(strings)
我知道我可能做了多件事情,但是我已经通过了这个很远的ruby轨道,很少有困难,所以我不知道为什么这是一个令我失望的事情.首先,它不是将字符串转换为符号,其次,它不是将它们推送到符号数组.
解决方法
to_sym一个人没有做任何有用的事情;它正在转换字符串,但不存储在任何地方或稍后使用它.你想继续添加到符号数组.
strings = ["HTML","Ruby"] symbols = [] strings.each { |s| symbols.push s.to_sym }
或者更优雅的是,您可以跳过设置符号= [],只需使用地图即可在一行中创建它:
symbols = strings.map { |s| s.to_sym }
地图将遍历数组中的每个项目,并根据地图函数将其转换为其他内容.对于简单应用功能的简单地图,您可以进一步了解:
symbols = strings.map &:to_sym
(这与symbols = strings.map(&:to_sym)相同,使用您觉得更有品位的人.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。