yoshikit1996’s diary

日々勉強したことの備忘録です。

Scalaのメソッドの括弧()と副作用

括弧を付けずに関数定義して、呼び出しで括弧をつけるとエラーになります。

    def f() = println("Hello") // 括弧をつける
    def g = println("World") // 括弧をつけない
    
    f()
    f
    // g() // error: Unit does not take parameters
    g

作法として、副作用がある関数は括弧を付けて、副作用のない関数は括弧を付けないらしいです。

    def myPrintln(s: String) = println(s) // 副作用あり
    def getHello = "Hello" // 副作用なし
    
    myPrintln("hoge") // 副作用あり
    val hello = getHello // 副作用なし