2011-11-03 1 views
0

는 다음 (쓸모없는) Go 기능을 고려하면-else 문 : 내가 값을 반환하는 경우, 그러나이동는 MinGW 컴파일러는 불평에 대한

main.go:15: function ends without a return statement

:

func domagic(n int) int { 
    if n > 10 { 
     return n; 
    } else { 
     return 0; 
    } 
} 

이 나에게 다음과 같은 컴파일러 오류를 제공을 if-else 블록 외부 (함수가 끝나기 전)에 오류없이 컴파일됩니다.

의도적으로이 동작입니까 아니면 Go MinGW 컴파일러에서 아직 구현되지 않았습니까?

답변

2

간단한 인터넷 검색을 this bugtracker issue을 얻을 수 있습니다. 그래서 나는 그것이 "우연히 이런 식으로 구현 된 것"과 같이 보인다고해서 "의도적으로"라고 말하지 않을 것입니다. this thread도 참조하십시오.

1

의도적으로 설계된 것입니다. 쓰기 :

package main 

import "fmt" 

func domagic(n int) int { 
    if n > 10 { 
     return n 
    } 
    return 0 
} 

func main() { 
    fmt.Println(domagic(7), domagic(42)) 
} 

출력 : 정확한 컴파일러 오류 메시지에 대한

0 42