facebook twitter hatena line email

「Ruby/class」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(プロパティ)
(staticクラス)
 
(同じ利用者による、間の3版が非表示)
行11: 行11:
 
  end
 
  end
  
==プロパティ==
+
==プロパティ付きクラス==
 
  class TestService
 
  class TestService
 
   def initialize(name)
 
   def initialize(name)
行22: 行22:
 
  end
 
  end
  
 +
上記呼び出し
 +
service = TestService.new("test1")
 +
service.exec() # test1
 +
service.name # test1
 +
 +
==プロパティ属性==
 
  attr_reader :name 参照が可能
 
  attr_reader :name 参照が可能
 
  attr_writer :name 更新が可能
 
  attr_writer :name 更新が可能
 
  attr_accessor :name 参照と更新が可能
 
  attr_accessor :name 参照と更新が可能
  
上記呼び出し
+
==staticクラス==
service = TestService.new("test1")
+
math_utility.rb
  service.exec() # test1
+
module MathUtility
 +
  extend self
 +
  def plus(num, num)
 +
    return num + num
 +
  end
 +
  end
 +
 
 +
呼び出し
 +
MathUtility.plus(1, 2)
 +
 
 +
==privateメソッド==
 +
class ApiController
 +
  def main
 +
    validate(params[:name])
 +
  end
 +
  private
 +
    def validate(name)
 +
        return "ok"
 +
    end
 +
end

2017年11月9日 (木) 05:15時点における最新版

クラスとメソッド

class TestController
 def hello
 end
end

継承の仕方

class TestController < ApplicationController
 def hello
 end
end

プロパティ付きクラス

class TestService
 def initialize(name)
    @name = name
 end
 def exec()
    return @name
 end
 attr_accessor :name
end

上記呼び出し

service = TestService.new("test1")
service.exec() # test1
service.name # test1

プロパティ属性

attr_reader :name	参照が可能
attr_writer :name	更新が可能
attr_accessor :name	参照と更新が可能

staticクラス

math_utility.rb

module MathUtility
  extend self
  def plus(num, num)
    return num + num
  end
end

呼び出し

MathUtility.plus(1, 2)

privateメソッド

class ApiController
  def main
    validate(params[:name])
  end
  private
    def validate(name)
       return "ok"
    end
end