2019/05/24

うーーん

ここに書いてること、見直すわけでもないし書き方もほんとに雑だから全然溜まっていってる気がしない。 意味がうまれるようにやりたい、、毎日流れるように過ぎていくのがほんとこわい、、 適当にちょっとずつのこすんじゃなくて、いっこずつ一日少しでもいいからちゃんと身につけていく法gあいいよね。

雑記

技術書も電子書籍で買うようにしたんだけど圧倒的にいいな。 やっぱ分厚いと持ち歩けないし、家にいる時間ほとんどないから

メソッドの名前

array とか hash

to_h

[[:for, bar],[:hoge, :piyo]] #=>{ foo: :bar, hoge :piyo } [key, value]のペアで渡すので、中身保の腕3つとか渡しちゃダメ。

定数

  • 配列を定数で定義したかった。
  • シンボルであるべきか、文字列かとか悩んだ。

freeze

  • rubyの定数は書き換えることができる。グローバル変数に近い。
  • rubyでは先頭が大文字であれば定数としている。StringArrayも定数。

  • 配列オブジェクトをフリーズしても要素はfreezeされない。

  • 定数の再代入も不可にしたい場合(デフォできちゃう)、名前空間切ってmoduleをfreezeする
ミュータブル

ミュータブルとイミュータブルとは?Rubyプログラミングの注意点 | エンジニアライブログ - 変更可能な変数の型。 - rubyではStringとか。 - 配列の初期値を引数で指定したとき、配列内の文字列ひとつを変数に入れて値を変更したら、配列の要素も変わってしまう。 - 配列の全要素が同じ文字列オブジェクトを参照しているので発生する。 Array.new(3, 'piyo')でなくArray.new(3) { 'piyo' }で防げる。同じ値でも異なるオブジェクトを設定しているから。 -object_id`で同じオブジェクトかどうか確認できる。

  • rubyはすべてがオブジェクトって学んだよね。基本データ型というものがなく、truenilもすべてが特定クラスのインスタンスである。
イミュータブル
  • 破壊的な変更が適用できない。
    • 数値型
    • シンボル
    • true, false(TrueClass FalseClass)
    • nil(NilClass)

技術書、最初から完全に理解するか、頭の中にインデックスを作るか? 〜 #チェリー本 が後半から難しくなる問題を考える - give IT a try

  • あたまの中にインデックスを作る。
  • プラモみたいに、薄く塗って乾かし、を繰り返す。