강의로 돌아가기
-

(1/_)*_ 괄호가 잘못적혀있는것 같습니다.

예시에 괄호가 잘못적혀 있는것 같습니다.

val call3 = doWithOneAndTow (1/ _ )* _ 라고 하면 파라미터 에러 납니다.

val call3 = doWithOneAndTow(1/_ * _) 라고 괄호 하나 안에 전부 넣어야만 실행이 됩니다.

작성중인 코드―LearnScala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
object LearnScala {

    // 매개변수로 받은 익명함수에 1과 2를 넣어서 실행하는 메소드
    def doWithOneAndTwo(f: (Double, Double) => Double) = {  
        f(3.0, 2.0) //return은 생략되었지만, f(1, 2)의 결과가 return
    }

    def main(args: Array[String]): Unit = {
        // ① 명시적으로 타입을 선언하는 익명함수
        val call1 = doWithOneAndTwo((x: Double, y: Double) => x + y)

        // ② 코드4번째 줄에서 익명함수의 매개변수 타입(Int, Int)을 이미 정했기 때문에 생략
        val call2 = doWithOneAndTwo((x, y) => x - y)  

        // ③ 이렇게 요약할 수도 있음
        val call3 = doWithOneAndTwo (1/_*_) // 매개변수의 순서대로 _에 대입됨

        println(call1, call2, call3)
    }
}
  • 김지은
    예시의 표현은 ((1/_)*_)를 의도한 것으로 보입니다.
    김지은―2019.01.02 18:23
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.