aya nakahara

生活について考えるブログ

Ruby Challenge(Day 1)で疑問に思ったことに調べて回答する

前回のRuby Challenge(Day 1)で疑問に思ったことを自分で調べて回答する回。

毎回そうだが人に見せるように書いていないのでご容赦ください。

 

 

amyamyamy.hatenablog.jp

 

 

  • 定数、変数の書き方

変数宣言が不要。書き方はそれぞれ

        - ローカル変数(hoge)

        - インスタンス変数(@hoge)

        - クラス変数(@@hoge)

        - グローバル変数($hoge)

 

今回勉強を進める中で、ローカル変数とインスタンス変数しかまだ使っていないので

クラス変数とグローバル変数についてはスコープが違うらしい、くらいの認識で進める。

 

参考にした記事:

qiita.com

 



  • 配列とリストの違い

配列とリストに関しては、言語によって様々仕様があるらしいので、

ここでは配列とリストはデータ構造の違いがある。程度に覚えておきます。

  • ハッシュと辞書とjsonの違い

各言語によってこういうスキーマの呼び名が異なって

取り出す方法も違いがあるくらいしかわかってない。

 

test.json 

hoge = { 
"user":{
"name":"aya",
"tall":"163",
"id":"123456789",
"live":{
"prefecture":"miyazaki"
},
"city":"miyazaki"
}
}

jsonの場合

hoge["user"]["name"]
=> "aya"

hoge.user.name
=> "aya"

hash

hoge = { 
user:{
name:"aya",
tall:"163",
id:"123456789",
live:{
prefecture:"miyazaki"
},
city:"miyazaki"
}
}

hashの場合

hoge[:user][:name]
=> "aya"

辞書型

hoge = { 
"user":{
"name":"aya",
"tall":"163",
"id":"123456789",
"live":{
"prefecture":"miyazaki"
},
"city":"miyazaki"
}
}

hashの場合

hoge["user"]["name"]
=> "aya"

 うーん。

 

 

 

  • ハッシュに対して存在しないキーを指定した時の挙動

nilが返却される

  • None,Null,nilの違い

プログラミング言語によって呼び名が異なるが、それぞれnullオブジェクトのこと

 

  • 型を意識した書き方ってできるのかな

基本はないっぽいがRuby3では型解析への動きもあるみたい。

 

www.slideshare.net

 

 

ドキュメントにもこのように書いているので、むしろ型を意識せずにサクサクかけるのが利点だと私は思いました。

手軽なオブジェクト指向プログラミングのためのインタプリタ言語です。

 

 

 

 

  • booleanを返すメソッドに?をつけるってあったけど、つけなかったらどうなる?

リファレンスにとると、

慣用的に、真偽値を返すタイプのメソッドを示すために使われます。

らしい。可読性向上の為に積極的に使うといいのかな(?

 

  • (そもそも)なんでendって書くんだろう..

コードのブロックを示している以外は何もわかりませんでした