Ruby - 基本的な文法 - 変数・Object
- 1. 概要
- 2. Object
- 3. 何ものか? kind_of?
1. 概要
最初にソースを見たときに、perl や php のように変数が $ で始まったりしないのね、配列が @ で、連想配列が % だったりしないのね。
とびっくり。
$ には別の意味があるのでした。
変数に関しては「Ruby 2.4.0 リファレンスマニュアル > 変数と定数」に詳細が述べられています。
ええい、面倒だ。
表に書いておこう。
分類 | 先頭文字 | 備考 |
ローカル変数 | _ か 小文字 | |
インスタンス変数 | @ | |
クラス変数 | @@ | |
グローバル変数 | $ | |
他に、真偽 NULL をあらわす「擬似変数」というものがあってそれは「擬似変数 true false nil」をご参照ください。
インスタンス変数・クラス変数というものの違いがよくわからない・・・。
「【まとめ】インスタンス変数、クラス変数、クラスインスタンス変数 - Qiita」を読んで、どこかで一度整理したいと思います。
2. Object
詳細は「Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > 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]
|
|