LoginSignup
0
0

More than 5 years have passed since last update.

4日目(2):Ruby認定試験による勉強

Posted at

変数、定数いろいろ

  • ローカル変数
    • アルファベット小文字または`_'で始まる識別子
  • グローバル変数
    • $で始まり、宣言が必要なく、プログラムのどこからでも参照できる。
    • 初期化されていないグローバル変数を参照した場合、値はnil。
  • インスタンス変数
    • @で始まり、特定の オブジェクトに属する。
    • そのクラスま たはサブクラスのメソッドから参照できます。
    • 初期化されていないインスタンス変数を参照した場合、値はnil。
  • クラス変数
    • @@で始まり、クラス定義 の中で定義される
    • クラスの特異メソッド、インスタンスメソッドなどから参照/代入ができる。
  • 定数
    • アルファベット大文字で始まる。
    • 他の言語では『定数』なので、再定義しようとしても、警告が出て、再定義できない。
    • Rubyでは、再定義しようとすると、警告が出るが、再定義できてしまう。

superメソッド

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

class User 
  attr_accessor:say
  def initialize
    @say = "Hello"
  end
end
class Oriver < User
  def initialize
    super
  end
end

oriver = User.new
puts oriver.say
#実行結果:Hello
#この時、superメソッドは親クラスのUserから、@sayを呼び出している

attr_accerssor(attr_readerとattr_writer)

  • attr_accerssorはゲッターとセッターの機能があるアクセスメソッド
  • インスタンス変数の値はクラス内からしか取得出来ない。
  • クラス外からインスタンス変数を取得更新するには、ゲッター、セッターが必要
    • ProgateのPHPの方なら説明がちゃんとあった。

include (モジュール名, モジュール名, ...)

クラスやモジュールに、他のモジュールをインクルードする。
引数にはモジュールを指定し、上の様に複数指定することができる

Math module

浮動小数点演算をサポートするモジュール.

円の面積
```
include Math

円の面積

def area r
return r * r * PI
end

球の体積

def volume r
return (4/3) * r * r * r * PI
end

πの値

puts PI #結果:3.141592653589793
area(2) #結果:12.566370614359172
volume (2)  : 25.132741228718345
```
これは便利。

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