syz*_*333 9 ruby string symbols
这些是Codecademy的指示:
我们有一个字符串数组,我们以后想用作哈希键,但我们宁愿它们是符号.创建一个新的数组符号.使用
.each遍历串阵列,并且每个字符串转换为一个符号,添加这些符号的符号.
这是我写的代码(strings提供了数组):
strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = []
strings.each { |x| x.to_sym }
symbols.push(strings)
Run Code Online (Sandbox Code Playgroud)
我知道我可能做了很多错事,但是我很难通过这条红宝石赛道,所以我不知道为什么这个让我很难受.首先,它不是将字符串转换为符号,其次,它不是将它们推送到符号数组.
mah*_*off 16
该to_sym独显没有做什么有用的东西; 它正在转换字符串,但不将其存储在任何地方或稍后使用它.您想继续添加到符号数组.
strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = []
strings.each { |s| symbols.push s.to_sym }
Run Code Online (Sandbox Code Playgroud)
或者更优雅的是,您可以跳过设置symbols = [],只需用map它来创建一行:
symbols = strings.map { |s| s.to_sym }
Run Code Online (Sandbox Code Playgroud)
map将遍历数组中的每个项目,并根据map函数将其转换为其他项目.对于刚刚应用函数的简单地图,您可以更进一步:
symbols = strings.map &:to_sym
Run Code Online (Sandbox Code Playgroud)
(这是相同的symbols = strings.map(&:to_sym),使用你觉得更有品味的.)