ゼロからわかる Ruby超入門

ゼロからわかる Ruby超入門

基礎を丁寧に振り返るとやっぱり知らなかったこととか、曖昧になっていたとこがはっきりと分かり今日も学び。
ブロックはいっつもdo~endでくくる癖がついていたので{}でかけるところは意識して書いていこう。
ソースコードを読み解くときも自分で使ってない{}のブロックが出てくるととたんに読む速度が遅くなるので自分で使っていくことが良き。

練習問題 chapter6

6-2の上級問題でめちゃくちゃめんどくさいコードにしてしまった。。

string = "caffe_latte".delete("_")
change = string.chars
s_sort = change.uniq

hash = {}
s_sort.each do |s|
  num = 0 
  change.each {|x| num += 1 if s == x }
  hash[s.to_sym] = num 
end

puts hash

答えを見て、自分の頭の硬さに絶望😭
次はもっとシンプルに考えるぞ!!

クラスもオブジェクト

クラスもオブジェクトである事は感覚的にはわかっていましたが、改めてclassメソッドを使用して確認すると親子構造が非常にわかりやすい。

また、その構造上内包と外延の概念が捉えられるとクラスとインスタンス、プログラミング、はては仕事全体が理解しやすくなる。
内包と外延 - Wikipedia
アリストテレスの形相と質量の考えもそうだし、具体と抽象も大きく見ると似たようなはかりがとれる。

基礎の基礎の概念の学習をしているとついつい脱線しがちになります😅

#クラスメソッド  ::クラスメソッド .インスタンスメソッド

メソッドの記法として、クラスメソッドの前には# ,::
インスタンスメソッドの前には.
が使用される。
これもまた知ってるのと知ってないのじゃリファレンスの読みやすさが違ってきますね!