2011-11-03 80 views
0

考慮以下(沒用)Go功能:轉到MinGW的編譯器抱怨if-else語句

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

這給了我以下編譯器錯誤:

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

但是,如果我返回一個值在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 
相關問題