はじめに
今回はRubyに関して簡単にまとめていきます。
自分の復習用。自分で見て分かるようにまとめてあります。
Ruby
プログラミング言語の1つ。記述がシンプルで分かりやすい。
Rubyの特徴
① Webアプリケーションの開発に特化している。
② データベースとの連携が容易。
③ 世界で幅広く使用されている。
④ 文法が覚えやすい。
Rubyのあれこれ
rubyコマンド
Rubyに関するさまざまな操作が実行できる。
ruby sample.rb
irb
ターミナルから直接rubyを実行できる。
文字列
プログラミングの中で文字を扱うための値。
"ダブルクォーテーション"
か'シングルクォーテーション'
で囲む。
文字列を連結する場合は"Hello" + "World"
数値
# 整数
10
# 負の値
-10
# 小数
3.14
クォーテーションで囲まない。
メソッド
プログラミングにおける何らかの処理をまとめたもの。
lengthレングスメソッド
文字列をカウント。
後に記述する配列にも使える。
### 文字列の文字数を出す
irb(main):001:0> "Hello World".length
=> 11
代数演算子
演算子 | 意味 |
---|---|
+ | 足し算 |
- | 引き算 |
* | かけ算 |
/ | 割り算 |
% | 割り算の余り |
to_sメソッド
数値が持つメソッド。数値を文字列に変換する。
# 数値「20」にto_sメソッドをつけて実行
irb(main):001:0> 20.to_s
=> "20"
文字列として連結する際などに使用する。
式展開
文字列の中に式を入れる。
文字列中で#{式}とする。
# 式展開で文字列に式を含む
irb(main):001:0> "今日で#{20}歳になりました"
=> "今日で20歳になりました"
※シングルクォーテーションでは式展開されない
変数
値を入れるもの。変数名
として名前をつけることが出来る。
number = 1
この場合numberは宣言(変数名)、1は定義。
=
は代入を意味する。代入演算子とも呼ばれる。
puts numberで1を出力する。
再代入
# 変数に代入
irb(main):001:0> number = 1
=> 1
# 変数を出力
irb(main):002:0> number
=> 1
# 変数に再代入
irb(main):003:0> number = 2
=> 2
# 変数を出力
irb(main):004:0> number
=> 2
自己代入演算子
演算子 | 意味 |
---|---|
+= | 足した値を自身に代入 |
-= | 引いた値を自身に代入 |
*= | かけた値を自身に代入 |
/= | 割った値を自身に代入 |
変数の命名規則
1, 変数の中身がなにか分かる
2, 小文字で始める
3, _で始めない
4, 数字で始めない
5, 日本語を使わない
6, スペースを含めない
7, 予約語を使用しない
puts
putsに続けて値を記述すると、その値をターミナルに出力する。
getsメソッド
ターミナルに値の入力機能を起動するメソッド。
# 入力機能が起動、入力された値が文字列として返る
name = gets
puts name
chompメソッド
文字列が使用できるメソッド。
input = gets.chomp
puts "入力した値は#{input}です"
配列
1つの変数で複数の値を持つことのできる値。複数の値を入れることができる。
要素の塊。要素は配列の中のデータのこと。
例えばnameという配列があれば、なかの太郎、花子、一郎などが要素。
name = ["太郎", "花子", "一郎"]
配列演算子(<<)
name = ["太郎", "花子", "一郎"]
name << "二郎"
# 出力
puts name
添字
配列に割り振られた番号。
name = ["太郎", "花子", "一郎"]
name << "二郎"
puts name
puts name[1]
[]は0から入力でき、[1]には花子が出力される。
name = ["太郎", "花子", "一郎"]
name << "二郎"
name[1] = "三郎"
puts name
puts name[1]
この場合花子が三郎に変更される。
ハッシュ
ハッシュは、「データ」とそれに対応する「名前」のセットを要素として持つ値。
データをバリュー
それに対応する名前をキー
と呼ぶ。
変数 = { キー1 => バリュー1, キー2 => バリュー2, キー3 => バリュー3 }
バリューで管理する方式をキーバリューストアと呼ぶ。
シンボル
コンピューターが処理するときには数値として扱われる値。ハッシュのキーとしてよく用いる。
hash = { :name => "Hanako" }
hash = { name: "Hanako" } #常使用
出力は配列と同じ形。カッコが違う。
teacher[:name] = "Hanako"
puts teacher
比較演算子
演算子 | 意味 |
---|---|
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
== | 等しい |
true/false
真偽値。trueかfalseで返す。
irb(main):001:0> 1 < 20
=> true
# 5は5以下か?
irb(main):002:0> 5 <= 5
=> true
# 1は20より大きいか?
irb(main):003:0> 1 > 20
=> false
# 5は5以上か?
irb(main):004:0> 5 >= 5
=> true
# 2 × 5は10と等しいか?
irb(main):005:0> 2 * 5 == 10
=> true
# 10は20と等しいか?
irb(main):006:0> 10 == 20
=> false
### 論理演算子(not演算子)
値が等しくない場合trueを返す。!を使用。
# 2 × 3 は6ではないか?
irb(main):001:0> 2 * 3 != 6
=> false
if文
条件式が正しいかどうかで処理を分岐させる。
value = gets.to_i
if value > 0
puts "値は正です"
elsif value < 0
puts "値は負です"
else
puts "値は0です"
end
elsifは条件式がfalseだった場合の処理を記述。その後も条件式を追加できる。
elseはそれ以外。
timersメソッド
指定した数値の回数だけ繰り返し処理を行えるメソッド。
3.times do
# 繰り返す処理
end
この場合、3回処理を繰り返す。
ブロック
特定のメソッドを呼び出す際に、処理のまとまりを引数として渡すことができる。
数値.times do |ブロック変数|
# 繰り返す処理
# 繰り返しの回数を使う場合、ブロック変数を使用する
end
eachメソッド
配列やハッシュの要素1つ1つに対して、要素の数だけ繰り返し処理が行えるメソッド。
fruits = { 'りんご' => 150, 'オレンジ' => 200, 'バナナ' => 100, 'パイナップル' => 300 }
fruits.each do |key, value|
puts "#{key} : #{value}"
end
# 実行結果
#=> りんご : 150
#=> オレンジ : 200
#=> バナナ : 100
#=> パイナップル : 300
メソッドの定義
def メソッド名
# 実行する処理
end
メソッド名 #メソッドの実行
戻り地
戻り値(もどりち)は、メソッドから呼び出した場所に渡される値。
def name
"一郎"
"二郎"
"三郎" # 最後の行が戻り値
end
puts name # => 三郎
return
returnを利用した時点で戻り値が決まる。
def name
"一郎"
"二郎"
"三郎"
return "四郎" # ここで処理が終わる
"五郎"
"六郎"
end
puts name # => 四郎
スコープ
スコープは、定義した変数が使える範囲。
1, メソッド外の変数はメソッド内で使えない。
2, メソッド内で定義された変数はメソッドの外では使えない。
引数
メソッドなどに渡すことのできる値。
def メソッド名(仮引数)
# 処理
end
# メソッドの呼び出し
メソッド名(実引数)
終わりに
ちょっと今日は体力切れ。。
明日はクラスやインスタンス中心にまとめます。