タグ

ブックマーク / secret-garden.hatenablog.com (2)

  • Ruby で内部クラスを private にする - Secret Garden(Instrumental)

    Ruby で内部クラスを private にする場合どうするのがよいかと思っていたんですが private_constant を使うのがいいみたい。 private_constant があるのでそれを使えばそれっぽい気がします https://t.co/79ySXXyQ7l— Pocke(ぽっけ) (@p_ck_) 2017年8月8日 class X class A end class B end private_constant :B def self.B_new B.new end end # OK X::A.new # Error: private constant X::B referenced (NameError) # X::B # OK X.B_new

    Ruby で内部クラスを private にする - Secret Garden(Instrumental)
    himejimasandesu
    himejimasandesu 2021/03/05
    Ruby
  • Ruby の &. と #try の違い - Secret Garden(Instrumental)

    Ruby 2.3 で Safe Navigation Operator(&.)という新しい演算子が追加されました。 これは obj&.to_i という風にメソッド呼び出しのように使い、レシーバが nil の場合に nil を返します。 10&.to_s # => "10" nil&.to_s # nil このように nil チェックすることなく安全にメソッドを呼び出すことが出来ます。 #try Rails の ActiveSupport にも #try という似たようなメソッドが定義されています。 これはレシーバがメソッドが呼びだせる場合にそのメソッドを呼び出すというような処理になります。 また、レシーバが nil の場合は必ず nil を返します。 10.try(:to_s) # => "10" nil.try(:to_s) # => nil &. と #try の違い 両方とも『レシー

    Ruby の &. と #try の違い - Secret Garden(Instrumental)
  • 1