Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away