go - 原始值类型的复合文字
问题描述
我是新手,有一个问题。也许它不是惯用的 Go 代码,而只是为了研究如何使该代码工作?似乎我可以把它作为一个接收器类型的 int,但是如何在 main 中调用它呢?:
xago
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
解决方案
使用类型转换:
x := xa(2) // type conversion
x.print()
或者给你的变量一个类型,你可以使用一个可分配给(类型变量)的无类型常量 :xa
var y xa = 3 // 3 is an untyped constant assignable to xa
y.print()
试试Go Playground上的示例。
推荐阅读
- facebook-graph-api - Facebook api 无法识别广告集状态是已批准还是未批准
- python - 图像文件在 django 中找不到或不存在
- css - 如何解决 Safari 浏览器中的线性渐变 css 问题?
- node.js - nodejs 从 mongodb 获得双倍记录
- hibernate - 使用 Spring Data JPA 在 SpringBoot 2.0.5.RELEASE 应用程序中删除对象
- android - 导航抽屉,主要活动内容未显示
- android - 应用程序显示一些不相关的文本而不是 Textview
- c# - 在c#中手动添加行时如何过滤datagridview
- algorithm - 根据 2D 投影坐标查找等边三角形的 3D 点
- random - 如何在不引入偏差的情况下生成一个范围内的随机 Rust 整数?