创建第一个Go的程序Hello Kitty

编程入门 行业动态 更新时间:2024-10-26 15:27:45

创建<a href=https://www.elefans.com/category/jswz/34/1770593.html style=第一个Go的程序Hello Kitty"/>

创建第一个Go的程序Hello Kitty

上一篇,我们已经搭建好了开发要用的基础环境: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 "fmt"func 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/fvbock/endless
vendor\github\fvbock\endless\endless.go:64:11: undefined: syscall.SIGUSR1 
vendor\github\fvbock\endless\endless.go:65:11: undefined: syscall.SIGUSR2 
vendor\github\fvbock\endless\endless.go:68:11: undefined: syscall.SIGTSTP 
vendor\github\fvbock\endless\endless.go:111:13: undefined: syscall.SIGUSR1
vendor\github\fvbock\endless\endless.go:112:13: undefined: syscall.SIGUSR2
vendor\github\fvbock\endless\endless.go:115:13: undefined: syscall.SIGTSTP
vendor\github\fvbock\endless\endless.go:119:13: undefined: syscall.SIGUSR1
vendor\github\fvbock\endless\endless.go:120:13: undefined: syscall.SIGUSR2
vendor\github\fvbock\endless\endless.go:123:13: undefined: syscall.SIGTSTP
vendor\github\fvbock\endless\endless.go:224:11: undefined: syscall.Kill   
vendor\github\fvbock\endless\endless.go:224:11: too many errors

windows 下的信号没有 SIGUSR1、SIGUSR2 等,为了不轻易的抛弃 windows 环境 (没有勇气换 mac)。目前用了一个 ditty 的办法解决:
在 go 的安装目录修改 Go\src\syscall\types_windows.go,83行左右,增加如下代码:

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 GOARCH=amd64

总结:
本文讲述了关于用GoLand开发第一个Go程序,下一篇我们将说说如何进行Go程序的打包发布。

更多推荐

创建第一个Go的程序Hello Kitty

本文发布于:2023-11-15 10:16:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1598029.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第一个   程序   Kitty

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!