原始值类型的复合文字

Go composite literal for type of primitive value

我是 Go 新手,有一个问题。也许它不是惯用的 Go 代码,而只是为了研究如何使这段代码工作?貌似可以把int类型作为receiver类型,但是在main中怎么调用呢?:

xa.go

package main

import "fmt"

type xa int

func (xl xa) print() {
    fmt.Println(xl)
}

main.go

package main

func main() {
    X := (xa{2})//not working
    X.print()
}

运行:

go run main.go xa.go
.\main.go:10:8: invalid composite literal type xa

使用类型 conversion:

x := xa(2) // type conversion
x.print()

或者给你的变量一个类型,你可以使用一个 untyped constant assignable 到(一个类型的变量)xa:

var y xa = 3 // 3 is an untyped constant assignable to xa
y.print()

尝试 Go Playground 上的示例。