편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.02.17

    코틀린: 함수정의시 = 대신 {} 를 사용하면 type mismatch 가 발생함.


    fun main(args:Array<String>){
    
        var result:Int
    
        result = highOrder({x:Int, y:Int -> x+y}, 10, 20)
        println(result)
    }
    
    fun highOrder(sum:(Int, Int)->Int, a:Int, b:Int) = sum(a,b)
    

    의 경우 정상적으로 30이 반환되는데

    fun main(args:Array<String>){
    
        var result:Int
    
        result = highOrder({x:Int, y:Int -> x+y}, 10, 20)
        println(result)
    }
    
    fun highOrder(sum:(Int, Int)->Int, a:Int, b:Int) {
        return sum(a,b)
    }
    

    로 표현을 바꿔서 컴파일하면 type mismatch가 뜹니다. 코틀린 함수 문법에서 두 형태 모두 같은 취급이 되는것이 아닌가요?

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.09.30

    코틀린 질문입니다.


    fun main(args:Array<String>){
    
        var result:Int
    
        result = highOrder({x:Int, y:Int -> x+y}, 10, 20)
        println(result)
    }
    
    fun highOrder(sum:(Int, Int)->Int, a:Int, b:Int) = sum(a,b)
    

    의 경우 정상적으로 30이 반환되는데

    fun main(args:Array<String>){
    
        var result:Int
    
        result = highOrder({x:Int, y:Int -> x+y}, 10, 20)
        println(result)
    }
    
    fun highOrder(sum:(Int, Int)->Int, a:Int, b:Int) {
        return sum(a,b)
    }
    

    로 표현을 바꿔서 컴파일하면 type mismatch가 뜹니다. 코틀린 함수 문법에서 두 형태 모두 같은 취급이 되는것이 아닌가요?