Menu
Coddy logo textTech

配列のショートカット

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 64/88。

Rubyは、特に文字列や連続した数値を扱う場合に、配列を作成するための便利なショートカットを提供します。これらのショートカットは時間を節約し、コードをよりクリーンにします。

%w 構文を使用すると、引用符やカンマを使わずに文字列の配列を作成できます:

fruits = %w[apple banana cherry]
puts fruits  # 出力: apple, banana, cherry

これは ["apple", "banana", "cherry"] と書くのと同等ですが、ずっと簡潔です。スペースで区切られた各単語が、個別の要素になります。

シンボルの配列には、%i を使用します:

statuses = %i[pending active completed]
puts statuses  # 出力: pending, active, completed

連続した数値の配列を作成するには、to_aを使用して範囲を配列に変換できます:

numbers = (1..5).to_a
puts numbers  # 出力: 1, 2, 3, 4, 5

配列のブラケット内でスプラット演算子 * を使用することもできます:

countdown = [*5..10]
puts countdown  # 出力: 5, 6, 7, 8, 9, 10

これらのショートカットは、引用符やカンマによる視覚的な煩雑さなしに、既知の値のリストを素早く定義する必要がある場合に特に便利です。

challenge icon

チャレンジ

簡単

2つの入力を読み取ります:

  1. スペースで区切られた単語の1行(例:red green blue yellow
  2. 範囲を表すカンマで区切られた2つの整数(例:3,7

以下のタスクを実行してください:

  1. 最初の入力から %w ショートカット構文を使用して文字列の配列を作成します。入力はすでに文字列であるため、まず split を使用して配列に変換する必要があります。その後、alphabetagamma という単語を含む別の配列を作成することで %w の使用例を示してください。
  2. %i を使用して、startmiddleend という値を持つシンボルの配列を作成します。
  3. 2番目の入力で提供された範囲から、配列ブラケット内でスプラット演算子 * を使用して連続する数値の配列を作成します。

以下をそれぞれ別の行に出力してください:

  1. 入力された単語配列の各要素
  2. 空行
  3. %w 配列(alpha, beta, gamma)の各要素
  4. 空行
  5. %i シンボル配列の各要素
  6. 空行
  7. 数値範囲配列の各要素

例えば、入力が red green blue1,5 の場合、出力は以下のようになります:

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

入力が sun moon star10,13 の場合、出力は以下のようになります:

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

チートシート

Rubyには、コードをよりクリーンで簡潔にするための配列作成のショートカットが用意されています。

%w構文を使用すると、引用符やカンマを使わずに文字列の配列を作成できます:

fruits = %w[apple banana cherry]
# ["apple", "banana", "cherry"] と同等

%i構文は、シンボルの配列を作成します:

statuses = %i[pending active completed]
# [:pending, :active, :completed] と同等

to_aを使用して範囲(range)を配列に変換します:

numbers = (1..5).to_a
# [1, 2, 3, 4, 5] を作成

配列のブラケット内でスプラット演算子 * を使用して、範囲から配列を作成します:

countdown = [*5..10]
# [5, 6, 7, 8, 9, 10] を作成

自分で試してみよう

# スペース区切りの単語を読み込む
words_input = gets.chomp

# 範囲(カンマで区切られた2つの整数)を読み込む
range_input = gets.chomp

# TODO: 以下にコードを記述してください
# 1. splitを使用してwords_inputから配列を作成する
# 2. alpha, beta, gammaを含む%w配列を作成する
# 3. start, middle, endを含む%i配列を作成する
# 4. 範囲を解析し、スプラット演算子(*)を使用して配列を作成する

# 各配列の要素を別々の行に出力し、配列の間に空行を入れる
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン