Ruby~オブジェクト~
こんにちはkazutoです。今回は、Rubyのオブジェクトについて解説していきます。
オブジェクトとは
オブジェクトとはRuby で扱える全てのデータ
です。Rubyの世界ではオブジェクトを用いて、現実世界の物を表現していきます。要するに、僕たちの人間界の「物」の全てをRuby界ではオブジェクト(データ)として扱われるという事です。
少し概念が難しいので、例を出して解説していきます。
まず、下記の質問に答えてください。
「あなたの世界は、何
があって成り立っていますか❓」
少し難しいかもしれませんが、何
という言葉とても大切です。何
とは、とても抽象的で多種多様なシチュエーションで使われており、意味が不明確で扱いづらい一面もある言葉です。凡庸性が高い言葉にはとても深い意味があると僕は考えます。
日頃、皆さんが、不明確で「❓」となった際に、発する言葉「何
」。
何を具現化した物こそがRubyのオブジェクトです。
もう一度、同じ質問をします。
「あなたの世界は、何
があって成り立っていますか❓」
A.答えはあなたが考えた何です。
正直な所、答えは決まっていないです。なぜなら、環境、カルチャー、時代背景、によって一人一人、世界の成り立ちには、誤差があるからです。誤差を矯正するために
- 法律
- モラル
- 国
などが存在しています。なので皆、同じ世界構成では、生きていないです。
オブジェクトは、ポジション的には、人間界でいう法律と同じ
です。人間は、法律を破ると罰を受けます。Ruby界で法律(オブジェクト)という決まるを破ると、エラーという罰を受けます。
文字列オブジェクト
文字列オブジェクトとは、名前の通り、文字を扱うデータのことを指します。Stringクラスという元から用意されているクラスメソッドのnewメソッドの引数に文字列を記述することにより、文字列として扱われます。
String.new("よろしく")
”よろしく”
'よろしく'
基本は、ダブルクォーテーション、シングルクォーテーションで、文字列オブジェクトを作成していくと思いますので、String.new(“文字列”)という記述の仕方は、覚えておく必要は、あまりないです。
しかし、文字列オブジェクトは、Stringクラスのオブジェクトである事は覚えておきましょう。
数値オブジェクト
数値オブジェクトとは、数字を扱うオブジェクトです。数字には、
- 整数
- 小数
とあると思います。
それぞれ
- Integer
- Float
というクラスに所属しております。
333
3.3
時刻オブジェクト
時刻オブジェクトとは、時刻を扱うデータのことです。時刻を扱うには、Timeクラスを用います。
t=Time.new
t=Time.now
上記の様に記述することで、現在の時刻を取得することができます。
2020-05-26 11:12:28 +0900:Time)
2020-05-26 11:12:28 +0900:Time)
日付オブジェクト
日付オブジェクトとは、日付を扱うデータのことです。日付を扱うにはDateクラスを用います。またDateTimeクラスというサブクラスを用いることで時刻も扱える様になります。
Dateクラスを使った場合
require "date"
#現在の日付を取得
d=Date.today
puts d
#日付を指定
d=Date.new(2015,10,10)
puts d
#DateTimeクラスを使った場合
#現在の日付+時間を取得
d = DateTime.now
puts d
#日付+時間を指定
d=DateTime.new(2015,10,10, 12, 9, 45, 0.175)
puts d
2020-05-26
2015-10-10
2020-05-26T14:00:34+09:00
2015-10-10T12:09:45+04:12
Dateクラスは、組み込みクラスではないので、一度,require “date”と記述して、読み込む必要があります。
ハッシュオブジェクト
ハッシュオブジェクトは、複数のオブジェクトをキー、バリューで管理するオブジェクトです。Hashクラスを用いてハッシュを操作します。
#ハッシュ定義方法
human=Hash.new
human={}
human={name:"kazuto",age:21}
#バリューの更新and追加
kazuto[:name]="kazuto"
#バリューの取得
human[:name]
human[:age]
#バリューの削除
hukman.delete(:age)
Hashクラスには、ハッシュを管理する上で便利なメソッドがたくさんあるので、興味があったらリファレンスを覗いてみてください。
配列オブジェクト
配列オブジェクトとは、オブジェクトを複数を管理するオブジェクトです。先ほどのハッシュオブジェクトとかぶる部分があると思います。キーとバリューでオブジェクト管理する
ハッシュオブジェクトに対し、配列オブジェクトでは、オブジェクトにインデックス番号を付ける
事によってオブジェクトを管理をします。
なおArrayクラスを用いて配列を操作をしていきます。
#配列の定義
nums=Array.new
nums=[]
nums=[2,3,4,5,3,1]
#配列の更新and追加
nums[0]=9
#配列の取得
nums[2]
nums[3]
#配列の削除
nums.delete(1)
上記が基本的な配列の操作に必要な記述です。インデックス番号に関しての注意点は、0から始まるという
点です。番号が1から始まると勘違いしてしまうと、配列を操作する上でズレが生じてしまいます。
Arrayクラスには、ハッシュを管理する上で便利なメソッドがたくさんあるので、興味があったらリファレンスを覗いてみてください。
まとめ:Ruby~オブジェクト~
今回はRubyのオブジェクトについて解説しました。オブジェクトの概念は、とても抽象的で不明確な点が多いとは思いますが、「何」を使わず言語化する事で徐々にオブジェクトの理解が深まると思います。
以上,kazutoでした。