这些是Codecademy的指示:



这是我编写的代码(提供了strings数组):

strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = []
strings.each { |x| x.to_sym }
symbols.push(strings)

我知道我可能做错了很多事情,但是到目前为止,我已经很顺利地通过了 ruby 赛道,所以我不确定为什么这会困扰我。首先,它没有将字符串转换为符号,其次,没有将其插入symbols数组。

最佳答案

to_sym并没有做任何有用的事情。它正在转换字符串,但没有将其存储在任何地方或以后使用。您想继续添加到符号数组。

strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = []
strings.each { |s| symbols.push s.to_sym }

或更优雅地说,您可以跳过设置symbols = [],而仅使用map在一行中创建它:
symbols = strings.map { |s| s.to_sym }
map将遍历数组中的每个项目,并根据map函数将其转换为其他内容。对于仅应用功能的简单 map ,您可以将其更进一步:
symbols = strings.map &:to_sym

(这与symbols = strings.map(&:to_sym)相同,请使用任何您觉得更有品味的方法。)

关于ruby - Codecademy "converting between symbols and strings" ruby 课,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15971364/

10-08 23:13