0
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?

More than 3 years have passed since last update.

今日のメモ(パーセント記法、文字列演算、シンボル)

Last updated at Posted at 2020-07-31

#パーセント記法
『'』や『"』で囲んできた文字列を、パーセント記法では囲む記号を指定できる。
文字列の中で『"』を使うときにエスケープしなくてもよくなる。
####例

#『"』無し
a = %*TEST*
p a  #=> "TEST"

#『"』あり
a = %*"TEST"*
p a  #=> "\"TEST\""
書式 生成される値
% ダブルクォート文字列
%Q ダブルクォート文字列
%q シングルクォート文字列
%s シンボル
%x コマンド出力
%r 正規表現

#文字列演算
文字列では『+』と『*』を適用して連結することができる。

a = "ru" + "by"
puts a    #=> ruby

他にも末尾に連結する場合は『<<』も使用することができる。

a = "ru"
puts a << "by"    #=> ruby

※ですが、異なる文字コード(UTF-8とSJISなど)の連結はエラーが発生します。

追記:文字列の比較はlengthやsizeメソッドで文字数を参照できます。

#シンボル
シンボルは主に文字列の前に『:』を置いて定義したもの。
ただし『"』で文字列を囲む必要は無い。

a = "ruby"
b = :study
 
p str.class    #=> String
p sym.class    #=> Symbol

パーセント記法を使ってもシンボルを生成することができる。

%s*test*    #=> :test

文字列からシンボルを生成する方法

a1 = "test"
a2 = a1.to_sym    # to_symメソッドを使用
p a2.class    #=> Symbol

作成したシンボルは、文字の並びが同じなら同一のオブジェクトIDを参照しますが、
文字列リテラルの場合は、文字の並びが同じでも、毎回新たにオブジェクトを生成するのでオブジェクトIDが変化します。

0
0
0

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
0
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?