LoginSignup
10
13

More than 5 years have passed since last update.

初心者のRubyist必見!

Last updated at Posted at 2015-04-15

配列とハッシュ

配列

配列とは他のオブジェクトへの参照を順番に並べたもの。

array = ["a","b","c"]   #配列を生成
p array #=>["a","b","c"]
p array[0] #=>"a"       #添え字は0から!

array[0] = "z"   #添え字0の要素を変更
p array#=>["z","b","c"]
array.push(1) #配列末尾の追加
array << 100  #配列末尾の追加

ハッシュ

ハッシュとはあるオブジェクトを他のオブジェクトへ対応させたもの
key => value という形になる。
ハッシュは以下の3通りで書き表せる。

hash1 = {"名前" =>"太郎"}
hash2 = {:種類=>:}
hash3 = {年齢: 19}

メソッド

手続きをモジュール化し再利用するための仕組み

関数的メソッド=非オブジェクト指向的に用いられるメソッド。

def functional(a,b)
    return [a,b,a+b]
end
functional(1,2)

メソッドの定義

-def式で表す

def sum(x,y)
 x + y
end

sum(1,2) #=> 3

ブロック付きメソッド

def foo_bar_baz
  yield "foo"
  yield "bar"
  yield "baz"
end

foo_bar_baz do |item|
  puts item
end
#=>foo
#=>bar
#=>baz

オブジェクトとクラス

例)

class Animal        #クラス
    def initialize(name)
        @name = name
    end
    def name #getter
        return @name
    end
    def name=(new_name)   #setter
        @name = new_name
    end
end

class Dog < Animal #継承
    attr_accessor :cry #アクセサ
    def initialize(name) #initialize
        super
        @cry = cry
    end
    def self.hello
        puts "hello"
    end
end

tom = Dog.new("Tom")
クラスの定義
class Animal
    ......
end

クラスを定義する際に名前の最初は大文字が基本。
クラス内では、計算や、ファイルの読み書きやエンドユーザーとのやりとりが可能。
ただし、多くはインスタンスメソッドで定義する。

インスタンスメソッド,インスタンス化
def ... end : インスタンスメソッド定義
クラス名.new() : インスタンス化
@名前 : インスタンス変数
initialize

インスタンス化した直後に自動的に呼ばれる。
ここでは、初期化処理を行ったり、必要なリソースを確保したりする。

インスタンス変数,クラス変数
@名前:インスタンス変数
@@名前:クラス変数
継承

子クラスが親クラスの特性を引き継ぐ

class Dog < Animal #子クラス名 < 親クラス名 
 ....
end
特異メソッド
def User.hello #クラス名.メソッド名
    ........
end
特異クラス

-ある特定のインスタンスのためだけにあるクラス

モジュール

モジュール=インスタンス化できないクラス
役割は2つ

1.Mix-in=制限された多重継承

*クラスは1つしか継承できない
*モジュールという「クラスのようだがクラスではない」ものならば何個でも継承できる

2.名前空間

名前の衝突を避けるための機能

class Service
    .......
end

module library
 class Service
  .....
 end
end

上側のServiceとmoduleの中にあるServiceは属している場所が違うので、衝突が起こりません。
トップレベルのServiceとLibraryのServiceとなります。

10
13
12

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
10
13