ProgateのRubyレッスン修了! ~ Ruby on Rails 1日目 ~【一から勉強してみる】

こんにちは!くまぺです。

ProgateのRubyレッスンⅠ〜Ⅴが終わりました!

Progateはこちら

割とサクサク進めるしとてもわかりやすいです。

とくにクラスとインスタンスの説明は今まで見た解説の中でもトップクラスでわかりやすかったです。さすが…

とりあえずここまで学んだ中で、これはちゃんと覚えておいた方がいいな、というポイントをメモしておきます。(基礎の基礎は省略しています)

・セミコロンは不要
・インクリメント演算子はない(i++みたいなやつ)

・文字列の中に変数を入れる

name = "kumape"
puts "やあ、僕の名前は#{name}だよ"
#やあ、僕の名前はkumapeだよ

・Rubyでの配列の書き方

users = ["kumape", "mai"] puts users[0] #kumape

・ハッシュ: キーを持った配列

user = {"name" => "kumape", "age" => 22}
puts user["name"] #kumape

・シンボル: “key” を :key のように書ける

user = {:name => "kumape", :age => 22}
puts user[:age] #22

・ハッシュはコロンを間に書く形で書き換え可能

user = {name: "kumape", age: 22}
puts user[:age] #22

・配列とハッシュは組み合わせが可能

users = [
{name: "kumape", age: 22},
{name: "mai", age: 21}
] puts users[0][:name] #mai

・配列のループ

users = ["kumape", "mai"] users.each do |user|
puts user
end
#kumape
#mai

・メソッドの定義

name = "kumape"
def puts_name
puts name
end
puts_name #kumape

・キーワード引数を使う

def likes(food:, drink:, music:)
puts "I like #{food}."
puts "I like #{drink}."
puts "I like #{music}."
likes(food: "pizza", drink: "beer", music: "pops")
#I like pizza.
#I like beer.
#I like pops.

・クラスを定義する

class User
attr_accessor :name #インスタンス変数
attr_accessor :age #インスタンス変数
end

・インスタンスを生成する

user1 = User.new

・インスタンス変数に値を代入する

user1.name = "kumape"
puts user1.name #kumape

・インスタンスメソッド

class User
attr_accessor :name #インスタンス変数
attr_accessor :age #インスタンス変数
def show_name #インスタンスメソッド
puts "ユーザー名は#{self.name}です"
end
end
user1 = User.new
user1.name = "kumape"
user1.show_name #ユーザー名はkumapeです

・initializeメソッドは自動で実行される

class User
attr_accessor :name #インスタンス変数
attr_accessor :age #インスタンス変数
def initialize(username:, age:)
self.name = username
self.age = age
puts "ユーザー名#{self.name}(#{self.age}歳)が生成されました"
end
end
user1 = User.new(username: "kumape", age: 22) #initializeメソッドが実行
#ユーザー名kumape(22歳)が生成されました

・他のrbファイルを読み込み

require "./user" #user.rbを読み込み

・コンソールから入力を受け取る

name = gets.chomp #文字列
age = gets.chomp.to_i #数値

・クラスの継承

require "./user" #user.rbを読み込み
class Food < User #子クラス < 親クラス end

・子クラスでメソッドはオーバーライドできる

・親クラスの同名のメソッドを呼び出す

class Food < User #子クラス < 親クラス def initialize(name:, age:) super(name: name) #親クラスの同名のメソッドを呼び出す end end

・Dateクラスを使える

require "date"
date1 = Date.new(2018, 2, 26)
puts date1 #2018-02-26
puts date1.sunday? #true #用意されているインスタンスメソッド
date2 = Date.today #今日の日付のインスタンスを作成

・クラスメソッドも定義できる

・インスタンスメソッドはインスタンス名.メソッド名 (def メソッド名 で定義)
・クラスメソッドはクラス名.メソッド名 (def クラス名.メソッド名 で定義)

・日曜日かどうかの真偽値

today = Date.today #2018-02-26
puts today.sunday? #false

・・・はい、というわけで、ひとまずProgateのRubyが終わりました。
ドットインストールなどでも並行して学習しつつ、早めにRuby on Railsの学習に進もうと思います。

とりあえず良いペース!引き続きがんばります!