1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】%記法のまとめ

Last updated at Posted at 2024-11-08

はじめに

こんにちは!アメリカの大学で語学を学びながら、独学でソフトウェアエンジニアを目指している者です。
現在たのしいRubyという教材を使用してArrayクラスについて学んでいますが、その中で%記法(%wと&i)を習いました。
もしかしたら、これら以外にも%記法があるのでは?と思い調べたのがこの記事を書こうと思ったきっかけです。
では、%記法について解説します。

%q%Q(文字列)

  • %q:シングルクォート(')と同じ扱いで、特殊文字や式展開が無効です。
  • %Q:ダブルクォート(")と同じ扱いで、特殊文字や式展開が有効です。
name = "Ruby"
puts %q(Hello\nworld)  # => Hello\nworld(特殊文字はそのまま)
puts %Q(Hello #{name})  # => Hello Ruby(式展開が有効)

%w%W(文字列の配列)

  • %w:スペース区切りで文字列の配列を生成します。式展開や特殊文字は解釈されません。
  • %W:ダブルクォートと同じ扱いで、式展開や特殊文字が有効な文字列の配列を生成します。
name = "Ruby"
p %w(apple banana cherry)  # => ["apple", "banana", "cherry"]
p %W(#{name} banana cherry) # => ["Ruby", "banana", "cherry"]

%i%I(シンボルの配列)

  • %i:スペース区切りでシンボルの配列を生成します。式展開や特殊文字は解釈されません。
  • %I:ダブルクォートと同様に、式展開や特殊文字が有効です。
language = "Ruby"
p %i(apple banana cherry)  # => [:apple, :banana, :cherry]
p %I(#{language} banana cherry) # => [:Ruby, :banana, :cherry]

%r(正規表現)

  • %r:正規表現を簡潔に記述するために使います。特にスラッシュ / を含む正規表現を書く際に便利です。
pattern = %r(\A\d{3}-\d{4}\z) # 文字列全体が3桁-4桁の数字と一致することを確認
puts pattern.match?("123-4567") # => true
puts pattern.match?("khasu3423532524-4239hg9h") # => false

その他の%記法

  • %s:シンボルを生成します。(通常は:symbolで表現します)%iはスペース区切りでシンボルの配列を作成するのでそこが違います。
# %s を使った例
symbol = %s(name)      # => :name

# %i を使った例
symbols = %i(cat dog)  # => [:cat, :dog]

まとめ

このようにしてみると、%記法の種類は結構多いことがわかります。
教材では%w%iを習いましたが、これらが一番使用頻度高そうですね。
上記以外に%記法あればコメントにて教えていただけると助かります。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?