Saya menginisialisasi array dengan cara ini:
array = Array.new
array << '1' << '2' << '3'
Apakah mungkin melakukan itu dalam satu langkah? Jika ya, bagaimana caranya?
ruby
arrays
initialization
pengguna502052
sumber
sumber
array = Array.new << 1 << 2 << 3
)1
ke'1'
.Jawaban:
Anda dapat menggunakan literal array:
Anda juga dapat menggunakan rentang:
Untuk array string yang dipisahkan spasi, Anda dapat menggunakan sintaks Percent String :
Anda juga dapat memberikan satu blok ke
Array.new
untuk menentukan berapa nilai untuk setiap entri:Akhirnya, meskipun tidak menghasilkan larik tiga string yang sama seperti jawaban lain di atas, perhatikan juga bahwa Anda dapat menggunakan enumerator di Ruby 1.8.7+ untuk membuat larik; sebagai contoh:
sumber
to_a
([*'1'..'3']
).Array[ "1","2","3"] #=> ["1","2","3"]
(Saya tidak berpikir metode ini ada hubungannya dengan konstruktor literal array). Anda juga dapat menggunakan Kernel # Array tingkat atas (nama metode terlihat seperti nama kelas)Array(1..5) #=> [1,2,3,4,5]
Oneliner:
atau
atau
atau
atau
sumber
[1,2,3]
yang melakukan inisialisasi tunggal. Juga, milikmu lebih banyak karakter. Juga, Anda telah membuat sebuah array Fixnums sedangkan OP menanyakan tentang sebuah array string.Bersamaan dengan jawaban di atas, Anda juga bisa melakukan ini
sumber
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
.Untuk membuktikan Ada Lebih dari
SatuEnam Cara Untuk Melakukannya:Jika 1.method (: +) tidak memungkinkan, Anda juga bisa melakukannya
Tentu, ini berlebihan dalam skenario ini, tetapi jika
plus_1
ekspresi yang sangat panjang, Anda mungkin ingin meletakkannya di baris terpisah dari pembuatan array.sumber
Anda dapat melakukan
Seperti yang dicatat orang lain, Anda juga bisa menginisialisasi array dengan notasi% w seperti ini:
atau
Harap dicatat bahwa dalam kedua kasus, setiap elemen adalah string, bukan integer. Jadi, jika Anda menginginkan array yang elemennya bilangan bulat, Anda tidak boleh membungkus setiap elemen dengan apostrof:
Selain itu, Anda tidak perlu meletakkan koma di antara elemen (yang diperlukan saat membuat array tanpa notasi% w ini). Jika Anda melakukan ini (yang sering saya lakukan karena kesalahan), seperti di:
elemennya akan menjadi tiga string ---- "1,", "2,", "3". Jadi jika Anda melakukannya:
outputnya adalah:
yang bukan yang kita inginkan di sini.
Semoga ini bisa membantu memperjelas maksudnya!
sumber
Untuk membuat array seperti itu, Anda dapat melakukan:
sumber
Jika Anda memiliki Array string, Anda juga dapat menginisialisasinya seperti ini:
array = %w{1 2 3}
pisahkan setiap elemen dengan spasi
sumber
Anda dapat menginisialisasi array dalam satu langkah dengan menulis elemen
[]
seperti ini:sumber
Anda cukup melakukan ini dengan
%w
notasi dalam array ruby.Ini akan menambahkan nilai array 1,2,3 ke array dan mencetak output sebagai
["1", "2", "3"]
sumber