這是我的第一個Golang
程序,'Hello world'後面。請找到下面的代碼塊,其目的是執行基本的算術和多種類型的返回演示。這只是一個假設的樣本,學習Go func
。但是,我在編譯時遇到以下異常。從例外情況來看,我認爲,對int8
操作數的操作返回int16/int32
作爲返回類型,並且不正確。Golang func - 返回類型
問:是不是很安全的語言來承擔int8
是安全地分配給int16
或int32
package main
import (
"fmt"
)
func Arithmetic(a,b int8) (int8,string,int16,int32){
return a-b, "add",a*b,a/b
}
func main() {
a,b,c,d :=Arithmetic(5,10)
fmt.Println(a,b,c,d)
}
錯誤:
C:/Go\bin\go.exe run C:/GoWorkspace/src/tlesource/ff.go
# command-line-arguments
.\ff.go:15: cannot use a * b (type int8) as type int16 in return argument
.\ff.go:15: cannot use a/b (type int8) as type int32 in return argument
Process finished with exit code 2
您不能將'int8'分配給'int16'或'int32',但您可以安全地轉換它們。 – JimB
你必須使用'int16()'等來明確地轉換它, –
@JimB,謝謝你的評論。我可能是錯的,但是,安全分配和轉換是不同的。 – Nair