Ruby
スペース
全角スペース

【Tips】Rubyソースコード内の全角スペースについて

概要

Rubyは変数名メソッド名クラス名などに全角文字を利用することができる。それは全角スペース(全角空白)も例外ではない。そのため、コード内の全角スペースは変数名やメソッド名とみなされた上でのエラーメッセージが表示されるので注意する必要がある。

確認

 全角スペースを変数名やメソッド名、クラス名の一部として利用してみる。半角スペースと間違えて全角スペースを挿入してしまった際の挙動に関してはこちらの記事を参照のこと。

環境

ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
WSL (Windows Subsystem for Linux) 上での実行。

コードと実行結果

変数

space1.rb
   = "全角スペース" # 変数「  」(全角スペース2個)
  のんぼ   = 568 # 変数「  のんぼ  」

puts   
puts   のんぼ   * 12 == 12*568
実行結果
全角スペース
true

メソッド

space2.rb
# メソッド
def     # メソッド「   」(全角スペース3個)
    puts "第一関数"
end
def  (input) # メソッド「 」(全角スペース1個)
    puts "第二関数:#{input}"
end

   
 ("文字列")
実行結果
第一関数
第二関数:文字列

クラス

 全角スペースは大文字アルファベットではないのでクラスの名前に全角スペースを用いる場合は冒頭に大文字アルファベットを付加する必要がある。

space3.rb
class C  # クラス「C 」
    def demand(    ) # 引数「    」(全角スペース4個)
        puts "存在 is #{    }"
    end
end

space = C .new
space.demand("ここにいるよ")
実行結果
存在 is ここにいるよ

考察

 可読性が著しく低下するため全角スペースによる変数名やメソッド名などを実用上使用することはほぼないといえる。ただし、全角スペースがこれらの命名に使用可能であるということを理解しないとエラーメッセージを読み解くことが難しい場合があるため仕様として知っておくと良い。

参考文献