【Scala】Scala ~ 基本編 / 関数 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/03/03/000000

で、Scala の メソッド について扱ったが
今回は、Scala の 関数 について扱う。

目次

【1】関数 (Function)
【2】用語整理
 1)無名関数(匿名関数)
 2)バインド
【3】メソッドとの違い
【4】イータ展開(Eta-expansion)

【1】関数 (Function)

* Scalaの関数は、 Function0 〜 Function22 までのトレイトのサブクラス

https://scala-text.github.io/scala_text/function.html

例:関数

val add = (x: Int, y: Int) => x + y

println(add(1, 2)) // 3

【2】用語整理

1)無名関数(匿名関数)

* 右辺の関数の本体部分(上の例でいうと、x + y)

2)バインド

* 関数名(上の例でいうと、add)に代入することを
 バインドするっという

【3】メソッドとの違い

* メソッドは def キーワードで定義

例:メソッド

def add(x: Int, y: Int): Int = x + y

println(add(1, 2)) // 3

【4】イータ展開(Eta-expansion)

* メソッドから関数値への変換
 => メソッドを「_」で関数オブジェクトにすること

https://kmizu.hatenablog.com/entry/2016/07/16/174522

関連記事

Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331
Scala ~ 基本編 / メソッド ~
https://dk521123.hatenablog.com/entry/2023/03/03/000000