Rubyノート

Rubyの忘備録。自身の反転学習用です。

文法

if文
if xx(真偽判定)
…end という書き方。なお、真偽判定のところがnilであればfalseと判定する。

配列、配列の繰り返し
oo=[xx,xx,xx…]という書き方。
oo.each do |変数名|
… endで配列を繰り返し処理できる。

オブジェクト(ハッシュシンボル)
user = {name: "xx", age: oo}という書き方。(:name => "xx"の省略形)
一つ目のキーは数字や文字列等でも定義できるが、可読性・処理速度の観点からシンボルが好ましいとされる。
なお、配列と組み合わせてuserに複数を代入することも可能。

メソッド
def xx(oo,oo) … end という書き方。(引数なしの場合、括弧もいらない。)
def xx? … end という書き方で真偽判定を返してくれる書き方もできる。
name = xx(oo,oo)と書くことでnameに戻り値を入れてくれる。
戻り値を定義する場合returnを書くが、なくても最後に実行された行を暗黙の戻り値として返してくれる。ちなみにreturnは1回実行されるとその下の行は実行されないので注意

クラス、インスタンス周り

クラス、インスタンス
class Human … endという書き方でクラスを定義する。
クラスの中でattr_accessor :nameという書き方をすることでインスタンス変数を定義できる。
def xx … endでインスタンスメソッドを定義できる。(インスタンスメソッドの中でインスタンス変数をあつかうときは、self.nameという書き方をする。)
def initialize … endでインスタンスが生成された直後に実行されるメソッド定義できる。

human = Human.newという書き方でインスタンスを生成できる。(ちなみにインスタンスは[]で配列にすることもできるぞ)インスタンス変数に値を代入するときやインスタンスメソッドを実行するときはhuman.name = xxという書き方をする。

class 子クラス < 親クラス … end と定義することで親クラスを継承した子クラスを生成できる。子クラスで親クラスと同様のメソッドを定義したら小クラスが優先されて上書きできる。重複がある変数等は、
super(name: name, age: 10)などと子クラスに再定義する必要性があるぞ。

class Menu
    def Menu.xx
    … 
    end
end
と書くことでクラスメソッドを定義できる。
Menu.xxと書くことでクラスメソッドを実行できる。(ちなみにインスタンスメソッドは一度生成したインスタンスに対して、インスタンス名.ooという呼び出し方)

その他

ファイルの読み込み
他のファイルで定義したクラスやインスタンスを使う場合には使うファイルの文頭でrequire "./ファイル名"を打ち込むことで読み込める。
require "date"などと入力すれば日付に関する関数を使えるようになるぞ。

get.chompでユーザーが入力した内容を受け取ることができるぞ。




この記事が気に入ったらサポートをしてみませんか?