読者です 読者をやめる 読者になる 読者になる

babie steps

作業療法記録

Scalaを見習ったClass定義

ruby

Ruby ではクラス定義をこう書く:

class User
  attr_accessor :name, :password
  def initialize(name, password)
    @name = name
    @password = password
  end
end

なげぇ。


一方、Scala ではこう書く:

class User(var name:String, var password:String);

短い。うらやましい。


Ruby でこう書けたらいんじゃね?:

class User(:name, :password)
end

initialize を省略できるとか。大体なげぇーんだよ、initialize って。即代入じゃない時に追加の処理を書けるぐらいでいんじゃね?


password を private にしたかったらこうとか:

class User(:name, :password)
  attr_private :password
end

秘匿したい時にはじめて制限する方法で。


え? Struct 使え?

Struct.new("User", :name, :password)
user = Struct::User.new("hoge", "fuga")

フヒヒwサーセンwww
Open Class だからメソッドも足せるしねー