#はじめに
Scalaスケーラブルプログラミング[第3版]で学んだことをまとめていきたいと思います。
基本的には書籍に沿った形で要約していきます。気になる箇所、改善点あれば是非ともコメントお願い致します。
#第1章スケーラブルな言語(A Scalable Language)
##スケーラブルな理由
- オブジェクト指向と関数型プログラミングが融合した静的格付け言語
- Scalaのトレイトでは任意のスーパークラスに新しい実装を追加可能(プラグイン能力が高い)
- 多重継承問題(ダイヤモンド継承)か起こりにくい言語仕様
- イミュータブルなデータ構造なデータ構造と参照透明なメソッドの推奨
- メソッドはどんな副作用も持ってはならない(手続き型の実装も可)
##Scalaを選ぶ理由
###互換性
- JVM上で動作
- Javaのメソッド、フィールドにアクセス可能
- Javaクラス、インターフェースを実装可能
- Scalaの型はJavaの型を拡張して実装
###完結さ
- Javaの半分以下のコードで実装可能
JavaConstructor
class MyClass {
private int index;
private Stirng name;
public MyClass(int index, String name) {
this.index = index;
thisn.name = name;
}
Scalaconstructor
class MyClass(var index: Int,var name: String) {}
簡素で余計なコードを書かなくていいのは魅力的
###高水準
ラムダ式を用いていもやや冗長??
Java8Matcher
boolean nameHasUpperCase =
name.chars().nyMatch{
(int ch) -> Charactor.isUpperCase((char) ch)
}
Scalaは簡素に書けるのがいい
ScalaMatcher
val nameHashUpperCase = name.exists(_.isUpper)
##参考文献
https://www.amazon.co.jp/dp/B01LYPRFI7/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1