プログラミング言語Rubyの型を紹介!|Rubyの型を使いこなせるようになろう
- システム
エンジニア - Rubyの継承はどんなメリットがあるのですか。
- プロジェクト
マネージャー - 似たような処理を行うクラスや使用頻度の高いクラスなど共通部分のあるクラスを継承すると、コードが整理されて読みやすくなるというメリットがあります。
Rubyの型について
今回は、Rubyの型について説明します。
RubyはC言語やJavaなどとは違い、変数の型宣言が不要です。
また、IntegerやFloat、Boolean、Stringなどの様々な型を扱えます。
変数の型チェックの方法についても紹介します。
Rubyの型に興味のある方はぜひご覧ください。
型の種類
Rubyには、以下のような型があります。
・整数(Integer)
正の整数、負の整数、ゼロを表します。
10進数、16進数、2進数、8進数も表現できます。
また、大きい数字はアンダーバーを付与することで読みやすくできます。実際に表示すると、アンダーバーは表示されません。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
num1 = 123 # 正の整数
num2 = -123 # 負の整数
num3 = 0 # ゼロ
p num1 # 123
p num2 # -123
p num3 # 0
p "---------------"
num4 = 0d123 # 10進数 (0dで始まる)
num5 = 0xfff # 16進数 (0xで始まる)
num6 = 0b110 # 2進数 (0bで始まる)
num7 = 0o777 # 8進数 (0oで始まる)
p num4 # 123
p num5 # 4095
p num6 # 6
p num7 # 511
p "---------------"
num8 = 123_456_789 # 読みやすいように_を付与できる
p num8 # 123456789
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
8
9
10
|
123
-123
0
"---------------"
123
4095
6
511
"---------------"
123456789
|
・浮動小数点数(Float)
1
2
3
4
5
6
7
8
9
|
num1 = 1.2345 # 正の浮動小数点数
num2 = -1.2345 # 負の浮動小数点数
num3 = 1.2e2 # 浮動小数点数(指数表記)
p num1 # 1.2345
p num2 # -1.2345
p num3 # 120.0
|
実行結果は以下のようになります。
1
2
3
|
1.2345
-1.2345
120.0
|
・論理型(Boolean)
true または false を表します。
1
2
3
4
5
6
7
|
bool1 = true
bool2 = false
p bool1 # true
p bool2 # false
|
実行結果は以下のようになります。
1
2
|
true
false
|
・文字列(String)
文字列(String)は、シングルクォート(‘)またはダブルクォート(“)で囲みます。
1
2
3
4
5
6
7
|
str1 = 'This is a string in double quote.'
str2 = "This is a string in double quotes."
p str1
p str2
|
実行結果は以下のようになります。
1
2
|
"This is a string in double quote."
"This is a string in double quotes."
|
・配列(Array)
一つの変数の中に複数の値を格納できます。
異なる型を格納することもできます。
1
2
3
4
5
6
7
8
9
|
array1 = [1, 2, 3, 4, 5] # 整数の配列
array2 = ["item1", "item2", "item3", "item4", "item5"] # 文字列の配列
array3 = [1, 2, 3, "item4", "item5"] # 整数と文字列の配列
p array1 # [1, 2, 3, 4, 5]
p array2 # ["item1", "item2", "item3", "item4", "item5"]
p array3 # [1, 2, 3, "item4", "item5"]
|
実行結果は以下のようになります。
1
2
3
|
[1, 2, 3, 4, 5]
["item1", "item2", "item3", "item4", "item5"]
[1, 2, 3, "item4", "item5"]
|
・ハッシュ(Hash)
キーと値のペアを格納するコレクションです。
1
2
3
4
5
6
|
name = {"first_name" => "Yamada", "last_name" => "Taro"}
p name["first_name"] # "Yamada"
p name["last_name"] # "Taro"
|
実行結果は以下のようになります。
1
2
|
"Yamada"
"Taro"
|
・時刻(Time)
時刻を表すデータ型です。
1
2
3
4
5
|
now = Time.now
p now
p now.strftime("%Y/%m/%d %H:%M:%S")
|
実行結果は以下のようになります。
実行時のタイムスタンプになります。
1
2
|
2020-09-03 14:02:29.924599563 +0000
"2020/09/03 14:02:29"
|
Rubyは上記のような型を扱うことができます。
型を確認する
Rubyでは、Objectクラスのclassメソッドで型を確認できます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
num1 = 123
p num1.class # Integer
num2 = 1.2345
p num2.class # Float
bool1 = true
bool2 = false
p bool1.class # TrueClass
p bool2.class # FalseClass
str1 = 'This is a string in double quote.'
p str1.class # String
array1 = [1, 2, 3, 4, 5]
p array1.class # Array
name = {"first_name" => "Yamada", "last_name" => "Taro"}
p name.class # Hash
now = Time.now
p now.class # Time
p nil.class # NilClass
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
8
9
|
Integer
Float
TrueClass
FalseClass
String
Array
Hash
Time
NilClass
|
このように、RubyではObjectクラスのclassメソッドで型を確認できます。
型のチェック
Rubyでは「===」で型のチェックができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
num1 = 123
p Integer === num1 # true
num2 = 1.2345
p Float === num2 # true
bool1 = true
bool2 = false
p TrueClass === bool1 # true
p FalseClass === bool2 # true
str1 = 'This is a string in double quote.'
p String === str1 # true
array1 = [1, 2, 3, 4, 5]
p Array === array1 # true
name = {"first_name" => "Yamada", "last_name" => "Taro"}
p Hash === name # true
now = Time.now
p Time === now # true
p NilClass === nil # true
|
実行結果はすべてtrueになります。
このように、Rubyでは「===」で型のチェックができます。
型の変換
Rubyでは to_i, to_f, to_s メソッドで型変換できます。
実際のソースコードを見てみましょう。
1
2
3
4
5
|
p 1.0.to_i # Integerに変換
p 1.to_f # Floatに変換
p 1.to_s # Stringに変換
|
実行結果は以下のようになります。
1
2
3
|
1
1.0
"1"
|
このように、Rubyでは to_i, to_f, to_s, to_a, to_h メソッドで型変換できます。
- システム
エンジニア - Rubyではこのような型を扱うことができるのですね。
- プロジェクト
マネージャー - 実際に自分でソースコードを書いてみましょう。
Rubyの型を正しく使いこなそう
Rubyの型について紹介しました。
RubyはC言語やJavaなどとは違い、変数の型宣言が不要です。
また、IntegerやFloat、Boolean、Stringなどの様々な型を扱えます。
変数の型チェックの方法についても紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Ruby新着案件New Job
-
RedmineプラグインおよびWEB開発/Ruby/東京都中央区/【WEB面談可】/在宅勤務
月給65万~65万円東京都中央区(新富町駅) -
Webアプリケーション運用保守/Ruby/東京都江東区/【WEB面談可】
月給50万~60万円東京都江東区(亀戸駅) -
Webアプリケーション開発(既存機能改修)のテスター/Ruby/東京都江東区/【WEB面談可】
月給25万~35万円東京都江東区(亀戸駅) -
Webアプリケーション開発(既存機能改修)/Ruby/東京都江東区/【WEB面談可】
月給45万~60万円東京都江東区(亀戸駅) -
Ansibelの自動構築/Ruby/東京都台東区/【WEB面談可】/テレワーク
月給46万~48万円東京都台東区(浅草駅) -
会計ワークフローの開発/Ruby/東京都新宿区/【WEB面談可】/フルリモート
月給46万~48万円東京都新宿区(新宿駅)