在Go语言中,不能将整数赋值给变量。

huangapple go评论82阅读模式
英文:

Cannot assign int to a variable in Go

问题

Go版本 - 1.2.1

package main

import "fmt"

func main(){
    type INTEGER int
    var aa INTEGER
    var bb INTEGER
    aa, bb = F(100,50)
    fmt.Println(aa,bb)
}

func F(a int, b int) (sum int, difference int){
    return a+b, a-b
}

输出
--------
/g.go:9: 无法在多重赋值中将int赋给aa类型为INTEGER<br>
./g.go:9: 无法在多重赋值中将int赋给bb类型为INTEGER
英文:

Go version - 1.2.1

package main

import &quot;fmt&quot;

func main(){
	type INTEGER int
	var aa INTEGER
	var bb INTEGER
	aa, bb = F(100,50)
	fmt.Println(aa,bb)
}

func F(a int, b int) (sum int, difference int){
	return a+b, a-b
}

Output:

/g.go:9: cannot assign int to aa (type INTEGER) in multiple assignment<br>
./g.go:9: cannot assign int to bb (type INTEGER) in multiple assignment

答案1

得分: 7

type创建了一个新的类型,所以这显然会失败。你必须显式地将int类型的值转换为INTEGER类型:

aaInt, bbInt := F(100, 50)
aa, bb = INTEGER(aaInt), INTEGER(bbInt)
英文:

type creates a new type, so this will obviously fail. You have to explicitly convert the values from int to INTEGER:

aaInt, bbInt := F(100, 50)
aa, bb = INTEGER(aaInt), INTEGER(bbInt)

huangapple
  • 本文由 发表于 2015年9月30日 18:43:14
  • 转载请务必保留本文链接:https://go.coder-hub.com/32864071.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定