我想将下面的字符串数组的元素转换为符号,并输出它们
strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
Run Code Online (Sandbox Code Playgroud)
看看我在做什么:
strings.each { |x| puts x.to_sym }
Run Code Online (Sandbox Code Playgroud)
没有成功.我究竟做错了什么?
ick*_*fay 46
使用map而不是each:
>> strings.map { |x| x.to_sym }
=> [:HTML, :CSS, :JavaScript, :Python, :Ruby]
Run Code Online (Sandbox Code Playgroud)
对于Ruby 1.8.7及更高版本或包含ActiveSupport,您可以使用以下语法:
>> strings.map &:to_sym
=> [:HTML, :CSS, :JavaScript, :Python, :Ruby]
Run Code Online (Sandbox Code Playgroud)
您的each方法似乎不起作用的原因是puts使用符号调用输出符号的字符串表示形式(即没有:).另外,你只是循环并输出东西; 你实际上并没有构建一个新的数组.
小智 26
清洁单行:
%w(HTML CSS JavaScript Python Ruby).map(&:to_sym)
Run Code Online (Sandbox Code Playgroud)
&tell参数应该被视为一个块,即构建数组并应用于to_sym每个元素.
| 归档时间: |
|
| 查看次数: |
25552 次 |
| 最近记录: |