LoginSignup
0
0

More than 1 year has passed since last update.

【自分用】Rubyの基礎を振り返る。①

Posted at

はじめに

今回は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

# メソッドの呼び出し
メソッド名(実引数)

終わりに

ちょっと今日は体力切れ。。
明日はクラスやインスタンス中心にまとめます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0