Ruby クラスメソッドでコンストラクタを実行するサンプル

環境
Windows11 Pro 64bit
ruby 3.1.2p20

構文

class クラス名
  def initialize(変数名)
      @num = 変数名
    end
     
     # 擬似的なコンストラクタ
    def クラス名.setval
        クラス名.new(値)
    end

使用例

class Sample
    def initialize(n)
      @cft = n
    end
  
    # 擬似的なコンストラクタ
    def Sample.setval
        Sample.new(6)
    end
  
    def show
      p @cft
    end
  end
  
  cftA = Sample.new(8)
  cftA.show  
  
  cftB = Sample.setval  # クラスメソッドから実行
  cftB.show  

実行結果
8
6

Ruby

Posted by arkgame