記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

2019/10/22_チェリー本(15日目)

はじめに

昨日もチェリー本をちょっとだけ読みました。

読んだ本

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus | 伊藤 淳一 | コンピュータ・IT | Kindleストア | Amazon

本編

読んだページ数

  • 第4章(P119〜)

新しく知ったこと

文字列を配列に変換する

  • charsメソッドを使う
"目肩腰".chars

#=> ["目", "肩", "腰"]

文字列が分解されて、各1文字を要素にする配列が作成。 筆者が最近凝り固まっている部分を要素とする配列が完成した。

ミュータブルとイミュータブル

種類 意味 代表例
ミュータブル
(mutable)
「変更可能な」
→破壊的な変更 ○
Stringクラス
イミュータブル
(imutable)
「変更できない」
→破壊的な変更 ✕
Integerクラス
Floatクラス
Symbolクラス
TrueClassクラス
FalseClassクラス
など

試しに bad_condition = :shoulderに対して以下の実験をしてみました。

bad_condition = :shoulder

bad_condition.upcase
#=> :SHOULDER

bad_condition.upcase!
#=> NoMethodError: undefined method `upcase!' for :shoulder:Symbol

イミュータブルであるSymbolクラスのオブジェクトに対して

  • 非破壊的メソッド(upcase) → 使えた
  • 破壊的メソッド(upcase!)→ エラーになる

という結果になりました。

あとがき

お気づきかと思いますが、今日、めっちゃ肩凝ってます(笑)

以上