运算符 = 和 := 在 Golang 中的结构中



为什么这不起作用?它适用于 := 运算符,但为什么我们不能在这里使用 = 运算符?

package main
import "fmt"
type Vertex struct {
X, Y int
}

func main() {
v1 = Vertex{1, 2}  // has type Vertex
v2 = Vertex{X: 1}  // Y:0 is implicit
v3 = Vertex{}      // X:0 and Y:0
p  = &Vertex{1, 2} // has type *Vertex
fmt.Println(v1, p, v2, v3)
}

可以通过多种方式创建新Vertex类型的实例:

1:var c Circle您可以使用.运算符访问字段:

package main
import "fmt"
type Vertex struct {
X, Y int
}
func main() {
var f Vertex
f.X = 1
f.Y = 2
fmt.Println(f) // should be {1, 2}
}

2:使用:=运算符

package main
import "fmt"
type Vertex struct {
X, Y int
}
func main() {
f := Vertex{1, 2}
fmt.Println(f) // should be {1, 2}
}

:=将同时初始化和声明变量。这是为了简单起见。 请不要在 Go 语言中的 = 和 := 中混淆。 1.=将值分配给先前定义的变量。 2. 另一方面,:=同时声明和初始化变量。

此外,@Burdy给出了 = 和:=的简单示例。

希望这个答案对您有所帮助并消除您的疑虑/困惑。

相关内容

  • 没有找到相关文章

最新更新