三网合一网站建设百科,科技有限公司你懂的,名片设计图片,专业建站公司上一篇#xff0c;我们已经搭建好了开发要用的基础环境:Go开发基础环境搭建, 今天我们要开始用GoLand实操关于Go的代码开发。
创建工程 File New Project 其中 game为项目名称
在项目目录下会自动生成一个文件:go.mod ,模块是相关Go包的集合。modules是源代码交换…上一篇我们已经搭建好了开发要用的基础环境:Go开发基础环境搭建, 今天我们要开始用GoLand实操关于Go的代码开发。
创建工程 File New Project 其中 game为项目名称
在项目目录下会自动生成一个文件:go.mod ,模块是相关Go包的集合。modules是源代码交换和版本控制的单元。go命令直接支持使用modules包括记录和解析对其他模块的依赖性。后面会提及。 一开始内容如下
module gamego 1.20如果是没有这个文件,就需要去生成,go mod init {projectName} 比如:
go mod init game
go mod tidy第一个类 main.go
一般 go的类名都为小写并且都叫main.go,
package gameimport fmtfunc main() {fmt.Println(Welcome to the game of life!)
}
执行go run main.go会报错 附上参数表
参数名格式含义-o-o file指定编译后二进制文件名-importcfg-importcfg file从文件中读取倒入配置-s-s省略符号表并调试信息-w-w省略 DWARF 符号表-buildmode-buildmode mode设置构建模式 - 默认为 exe-buildid-buildid id将ID记录为Go工具链的构建ID-extld -extld linker设置外部链接器 - 默认为 clang 或者 gcc-work-work设置该参数后不会在程序结束后删掉编译的临时文件可用于参看编译生成的文件-n -n加上该参数可以查看编译的过程但不会继续执行编译后的二进制文件-x-x加上该参数可以查看编译的过程会继续执行编译后的二进制文件
编码规范
The main file has the non-main package or does not contain the main function这是因为没声明main包把package game 改成package main 就可以了。
PS E:\go-workspace\game go run main.go
Welcome to the game of life!在这过程种可能会遇到如下异常 Q1.windows下使用endless报错undefined: syscall.SIGUSR1 go run main.go
# github.com/fvbock/endless
vendor\github.com\fvbock\endless\endless.go:64:11: undefined: syscall.SIGUSR1
vendor\github.com\fvbock\endless\endless.go:65:11: undefined: syscall.SIGUSR2
vendor\github.com\fvbock\endless\endless.go:68:11: undefined: syscall.SIGTSTP
vendor\github.com\fvbock\endless\endless.go:111:13: undefined: syscall.SIGUSR1
vendor\github.com\fvbock\endless\endless.go:112:13: undefined: syscall.SIGUSR2
vendor\github.com\fvbock\endless\endless.go:115:13: undefined: syscall.SIGTSTP
vendor\github.com\fvbock\endless\endless.go:119:13: undefined: syscall.SIGUSR1
vendor\github.com\fvbock\endless\endless.go:120:13: undefined: syscall.SIGUSR2
vendor\github.com\fvbock\endless\endless.go:123:13: undefined: syscall.SIGTSTP
vendor\github.com\fvbock\endless\endless.go:224:11: undefined: syscall.Kill
vendor\github.com\fvbock\endless\endless.go:224:11: too many errorswindows 下的信号没有 SIGUSR1、SIGUSR2 等为了不轻易的抛弃 windows 环境 (没有勇气换 mac)。目前用了一个 ditty 的办法解决 在 go 的安装目录修改 Go\src\syscall\types_windows.go83行左右增加如下代码
var signals [...]string{// 这里省略N行。。。。/** 兼容windows start */16: SIGUSR1,17: SIGUSR2,18: SIGTSTP,/** 兼容windows end */
}/** 兼容windows start */
func Kill(...interface{}) {return;
}
const (SIGUSR1 Signal(0x10)SIGUSR2 Signal(0x11)SIGTSTP Signal(0x12)
)
/** 兼容windows end */Q2: unsupported architecture of windows/i386 - only windows/amd64 is supported 在终端执行如下
go env -w GOARCHamd64总结 本文讲述了关于用GoLand开发第一个Go程序下一篇我们将说说如何进行Go程序的打包发布。