動的const宣言
こんなの作ったら
def const(x) x.freeze end
const char *a = "hoge"; ぽい感じで
irb(main):004:0> const a = "hoge" => "hoge" irb(main):005:0> a[1] = "a" TypeError: can't modify frozen string
こういう風に書けるなぁ、と思った。
irb(main):006:0> const a = "hoge" => "hoge" irb(main):007:0> a = "hige" => "hige" irb(main):008:0> a[2] = "d" => "d"
それだけのネタ。あまり意味は無い。
というか、大文字始まりの定数が
irb(main):009:0> A = "hoge" => "hoge" irb(main):010:0> A[1] = "a" => "a" irb(main):011:0> A => "hage" irb(main):012:0> A = "hige" (irb):10: warning: already initialized constant A => "hige"
こういう動作することを初めて知った。
実行時にwarning出るだけなのね。