Ruby - 基本的な文法 - 変数・Object


 クラウディア


1. 概要
2. Object
3. 何ものか? kind_of?
4. 参考サイト

1. 概要

 最初にソースを見たときに、「perl」や「php」のように変数が「$」で始まったりしないのね、配列が「@」で、連想配列が「%」だったりしないのね。  とびっくり。  「$」には別の意味があるのでした。  変数に関しては、参考サイトに詳細が述べられています。  ええい、面倒だ。  表に書いておこう。
分類 先頭文字 備考
ローカル変数 _ か 小文字
インスタンス変数 @
クラス変数 @@
グローバル変数 $

 他に、真偽「NULL」をあらわす「擬似変数」というものがあってそれは、参考サイトをご参照ください。

 インスタンス変数・クラス変数というものの違いがよくわからない・・・。
 参考サイトを読んで、どこかで一度整理したいと思います。

2. Object

 詳細は、参考サイトをご参照ください。  「Object」クラスというのがあって、これがすべてのクラスの抽象クラスになるのだそうな。

3. 何ものか? kind_of?

 kind_of? か is_a? を使って(同じ引数と戻り値)でオブジェクトがなにものかを調べられます。

kind_of?(mod)
is_a?(mod)
 引数に指定できるのは「クラスやモジュールなど、Moduleかそのサブクラスのインスタンス」とのことで
#!/usr/bin/env ruby

hash = { :foo => 'fufufu' }

puts('hash.kind_of?(Hash) = ['"#{hash.kind_of?(Hash)}"']')
puts('hash.kind_of?(Array) = ['"#{hash.kind_of?(Array)}"']')

 上記のコードを実行すると、下記の結果になります、

> ./ソースファイル名.rb
hash.kind_of?(Hash) = [true]
hash.kind_of?(Array) = [false]

4. 参考サイト

 本ページは、下記のサイトを参考にさせていただきました。
Ruby 2.4.0 リファレンスマニュアル > 変数と定数」
「Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Objectクラス」
「擬似変数 true false nil」
「【まとめ】インスタンス変数、クラス変数、クラスインスタンス変数