Inicjalizuję tablicę w ten sposób:
array = Array.new
array << '1' << '2' << '3'
Czy można to zrobić w jednym kroku? Jeśli tak to jak?
ruby
arrays
initialization
user502052
źródło
źródło
array = Array.new << 1 << 2 << 3
)1
na'1'
.Odpowiedzi:
Możesz użyć literału tablicowego:
Możesz również użyć zakresu:
W przypadku tablic ciągów rozdzielanych białymi znakami można użyć składni ciągu procentowego :
Możesz również przekazać blok, aby
Array.new
określić, jaka będzie wartość dla każdego wpisu:Na koniec, chociaż nie generuje tej samej tablicy trzech ciągów, co inne odpowiedzi powyżej, zauważ również, że możesz użyć modułów wyliczających w Ruby 1.8.7+ do tworzenia tablic; na przykład:
źródło
to_a
([*'1'..'3']
).Array[ "1","2","3"] #=> ["1","2","3"]
(nie sądzę, aby ta metoda miała cokolwiek wspólnego z konstruktorem literału tablicy). Możesz również użyć tablicy Kernel # najwyższego poziomu (nazwa metody wygląda jak nazwa klasy)Array(1..5) #=> [1,2,3,4,5]
Oneliner:
lub
lub
lub
lub
źródło
[1,2,3]
która wykonuje pojedynczą inicjalizację. Poza tym masz więcej postaci. Ponadto utworzyłeś tablicę liczb poprawek, podczas gdy OP pytał o tablicę ciągów.Wraz z powyższymi odpowiedziami możesz to zrobić
źródło
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
.Aby udowodnić, że jest więcej niż
jedensześć sposobów, aby to zrobić:Gdyby metoda 1.metoda (: +) nie była możliwa, można by to również zrobić
Jasne, w tym scenariuszu jest to przesada, ale jeśli
plus_1
było to naprawdę długie wyrażenie, możesz chcieć umieścić je w osobnym wierszu od tworzenia tablicy.źródło
Możesz to zrobić
Jak zauważyli inni, możesz również zainicjować tablicę z notacją% w w następujący sposób:
lub
Należy pamiętać, że w obu przypadkach każdy element jest łańcuchem, a nie liczbą całkowitą. Więc jeśli chcesz mieć tablicę, której elementy są liczbami całkowitymi, nie powinieneś zawijać każdego elementu apostrofami:
Nie musisz też umieszczać przecinka między elementami (co jest konieczne przy tworzeniu tablicy bez tej notacji% w). Jeśli to zrobisz (co często robiłem przez pomyłkę), na przykład:
jego elementami będą trzy ciągi ---- „1”, „2”, „3”. Więc jeśli to zrobisz:
wynik będzie następujący:
czego tutaj nie chcemy.
Mam nadzieję, że to pomoże wyjaśnić sprawę!
źródło
Aby utworzyć taką tablicę, możesz zrobić:
źródło
Jeśli masz tablicę ciągów, możesz ją również zainicjować w następujący sposób:
array = %w{1 2 3}
po prostu oddziel każdy element dowolną spacją
źródło
Możesz zainicjować tablicę w jednym kroku, pisząc elementy w
[]
następujący sposób:źródło
Możesz to po prostu zrobić za pomocą
%w
notacji w tablicach ruby.Doda wartości tablicy 1, 2, 3 do tablicy i wydrukuje dane wyjściowe jako
["1", "2", "3"]
źródło