我想将下面的字符串数组的元素转换为符号,并输出它们
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 次 |
最近记录: |