为什么不起作用?它可以与:=运算符一起使用,但是为什么我们不能在这里使用=运算符呢?

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 - Golang结构中的operator =和:=,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45252693/

10-15 21:42