Apakah ada cara yang lebih bersih untuk melakukan hal seperti ini?
%w[address city state postal country].map(&:to_sym)
#=> [:address, :city, :state, :postal, :country]
Saya akan mengira %s
akan melakukan apa yang saya inginkan, tetapi ternyata tidak. Hanya mengambil segala sesuatu di antara kurung dan membuat satu simbol besar dari itu.
Hanya gangguan kecil.
Jawaban:
Jawaban aslinya ditulis kembali pada bulan September '11, tetapi, mulai dari Ruby 2.0 , ada cara yang lebih pendek untuk membuat array simbol! Literal ini:
akan melakukan apa yang Anda inginkan.
sumber
%i|a b c|
Dengan risiko menjadi terlalu literal, saya pikir cara paling bersih untuk membangun array simbol menggunakan array simbol.
Tidak bisa memikirkan sesuatu yang lebih ringkas dari itu.
sumber
%i[ ]
Array simbol yang tidak diinterpolasi, dipisahkan oleh spasi putih (setelah Ruby 2.0)%I[ ]
Array simbol yang diinterpolasi, dipisahkan oleh spasi putih (setelah Ruby 2.0)%i[address city state postal country]
cara terbersih untuk melakukan ini adalah:
%w[address city state postal country].map(&:to_sym)
sumber