2

文字列の配列があり、各文字列要素を繰り返し、各文字列をシンボルに変換し、各シンボルをシンボルという名前の配列にプッシュすることにより、シンボルの配列に変換したいと考えています。

strings = ["A", "B", "C", "D", "E", "F", "G"]  #array of strings

symbols = [strings.each{ |x| "x".to_sym.push }]  #array of symbols

上記のコードを書きましたが、問題はプッシュ要素にあります。エレメントの正しい押し方を教えてください。

4

5 に答える 5

6

代わりにArray#mapを使用してください。

symbols = strings.map { |x| x.to_sym }  # array of symbols
于 2013-01-21T15:59:39.217 に答える
2

提案されたポスターのいくつかのように、あなたはArray#mapこの目的のために使うことができます。単純な変換が必要なto_procため、簡潔にするために表記を使用することもできます。

symbols = array_of_strings.map(&:to_sym)
于 2013-01-21T16:01:29.467 に答える
2

ここでプッシュする必要はありません。必要collectです。

 symbols = ["A", "B", "C", "D", "E", "F", "G"].collect{|x| x.to_sym}

これはあなたが望むことを達成します。

于 2013-01-21T15:59:47.280 に答える
1

これはあなたが探しているコードのブロックだと思います:

strings = ["A", "B", "C", "D", "E", "F", "G"]  //array of strings
symbols = Array.new

strings.each do |x|
    symbols << x.to_sym
end
于 2013-01-21T16:01:10.460 に答える
0

必要なのはこれだけです:

strings.map &:to_sym
于 2013-01-21T16:49:29.017 に答える