Javaとrubyの違いメモ
2024-01-23次の職場でRubyが必要なので、チェリー本をやってみたときのメモです。
以下スペック
- Java Gold取得
- Reactちょっとできる
- 案件経験1年ほど
簡単な違いメモ
- 変数名は基本的にキャメルケース
- メソッドの宣言や呼び出しの仕方が違う
- nullがnil
- "#{variables}"でJavaScriptのテンプレートリテラルのようなことができる
- rubyでは文字列変換と整数変換などの型変換を明示しなければならない
- to_s,to_i
- 返り値の型はいらない
- 何なら返り値も明示しない(returnとかいらない)
- メソッド
- 引数がないときは、()を付けないのが主流
- 逆にある場合はつけといたほうがいい
- 述語メソッド(?や!で終わる)
- 文字列
- %記法
- ヒアドキュメント(複数行にかかる長い文字列)
- 配列
- sample_array[0]
- forで書くよりは、eachを使うことが多い
- 添え字が必要な時は、each_with_indexやmap_with_indexなど
- continue → next
- rubyのthrowとcatchは違う
- ハッシュとシンボル
- hashはjson的なkey-valueのオブジェクト
- どちらかというと、pythonのdictの方が近いかもしれない
- hashはjson的なkey-valueのオブジェクト
- クラス
- newで作る点には変わらないが、コンストラクタのようにinitializeメソッドが必要
- private,publicなどの修飾子の宣言の仕方
- 定数が変更可能、また、定数の値がミュータブルな場合は、freezeをすることが推奨
- Exception
- begin~resucue~end
- Exceptionからの継承関係が違う(特殊なエラーorStandardError)
- retry文
- ラムダ
- Procオブジェクト、書き方が->(variables){}, ->{(function)}
- パターンマッチ
- case_inでパターンマッチングが可能
学習の足りない箇所
- シンボル
- クラスメソッドの完璧な理解
- Proc,lambda
- その他細かいところ(各章の後ろの方)