LoginSignup
1
0

More than 5 years have passed since last update.

Scala入門 スケーラブルプログラミング ①

Last updated at Posted at 2018-11-26

はじめに

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)

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0