1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubyの基本メモ

Last updated at Posted at 2021-05-25

Rubyの基本メモ

初めてRuby on Railsをやってみようと思っています。
まずはRailsチュートリアルから始めようと思いましたが、
その前に基本構文すら知らなかったので、いつでも見れるように簡単にまとめました。

配列と文字列の中での出力

配列を代入する変数名は慣習上、複数形にすることが多い。

names = ["Honda","Fukumoto","Horiuchi"]
puts names
puts "私は#{names[0]}です"

出力結果

Honda
Fukumoto
Horiuchi
私はHondaです

ハッシュ

ハッシュも配列と同じく複数のデータをまとめて持つが、

それぞれのデータにキーをつけることができる。

変数 = { :key1 => a, :key2 =>b}

キーは文字列かシンボルを使うことができるが、一般的にシンボルを使う。

シンボル

シンボルは先頭に:(コロン)をつけた文字列で、普通の文字列よりも処理が高速になる。文字列に通し番号を割り振ることで、裏ではただの整数として管理している感じ。

上の例の:key1は、先頭に:がついているため、シンボル。

if文

if 条件1
  処理1
elsif 条件2
  処理2
else
  処理3
end

繰り返し

while文

num = 1

while num <= 3
  puts num
  num += 1
end
1
2
3

配列の繰り返しeachメソッド

wdays = ["月","火","水","木","金"]

wdays.each do |wday|
  puts wday + "曜日"
end
月曜日
火曜日
水曜日
木曜日
金曜日

.eachはメソッドなので、この時のendはwhile~endみたいにeach~endではない。do~endのブロック。|wday|はブロック変数。

eachメソッドに範囲演算子を組み合わせる

開始値と終了値が決まっている場合に使う。

(1..3).each do
  puts "Hello world"
end
Hello world
Hello world
Hello world

####ブロック変数を使ってみると

(1..3).each do|cnt|
  puts "Hello world" + cnt.to_s
end
Hello world1
Hello world2
Hello world3

メソッド

def hello
  puts "Hello"
  puts "World"
end

hello

出力結果

Hello
World

引数、戻り値がある場合

def メソッド名(引数)
  処理
  return 戻り値
end

クラスの作成

class クラス名
  attr_accessor :シンボル名1, :シンボル名2
end

クラスに属性を持たせる

クラスに属性を持たせるには、attr_accessor(アトリビュートアクセサ)メソッドを使う。

attr_accessorメソッドは3つの役割がある。

.名前が@で始まるインスタンス変数を作成する。

attr_accessorメソッドは2つの役割がある。

読み取り専用メソッドを作成する。

書き込み専用メソッドを作成する。

役割的にはセッターゲッターみたいなもの?

また、アクセサメソッドを作成するためのメソッドはattr_accessorメソッドと合わせて以下の3種類ある。

メソッド 処理
attr_accessor : 変数名(アトリビュートアクセサ) 読み取り用と書き込み用の両方のメソッドを作る
attr_writer :変数名(アトリビュートライター) 書き込み用メソッドだけを作る
attr_reader 変数名(アトリビュートリーダー) 読み取り用メソッドだけを作る

インスタンスを作ってクラスを利用する方法

newする(newメソッドを使う)

変数 = クラス名.new
変数.属性 = xx
puts 変数.属性

例:Carクラス、属性が色

class Car
  attr_accessor :color
end

car = Car.new
car.color = "red"
puts car.color
red

継承

class 新しく作成するクラス < 継承するクラス

例:ApplicationRecordクラスを継承したTaskクラスを作成する

class Task < ApplicationRecord
1
1
2

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?