创建第一个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.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 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程序的打包发布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/137210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ONE·C++ || 网络基础(二)】

总言 主要内容:演示socke套接字编程(TCP模式),介绍序列化和反序列化,并进行演示(json版本达成协议编写、守护进程介绍)。 文章目录 总言4、基于套接字的TCP网络程序4.0、log.hpp4.1、version1.…

竞赛选题 深度学习疲劳驾驶检测 opencv python

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

NSS [鹏城杯 2022]压缩包

NSS [鹏城杯 2022]压缩包 考点&#xff1a;条件竞争/逻辑漏洞&#xff08;解压失败不删除已经解压文件&#xff09; 参考&#xff1a;回忆phpcms头像上传漏洞以及后续影响 | 离别歌 (leavesongs.com) 源码有点小多 <?php highlight_file(__FILE__);function removedir($…

不想努力了,有没有不用努力就能考上硕士的方法

今年&#xff0c;硕士研究生考试报考人数再次刷新了纪录&#xff0c;高达474万人次。 这些年考研一直在扩招&#xff0c;但是录取率却越来越低&#xff0c;内卷血腥程度可想而知&#xff01; 2020年研究生报考人数341万&#xff0c;录取人数99.05万&#xff0c;录取率29.05%。…

物联网水表有什么弊端吗?

物联网水表作为新一代智能水表&#xff0c;虽然在很大程度上提高了水资源的管理效率&#xff0c;但也存在一定的弊端。在这篇文章中&#xff0c;我们将详细讨论物联网水表的弊端&#xff0c;以帮助大家更全面地了解这一技术。 一、安全隐患 1.数据泄露&#xff1a;物联网水表通…

Zabbix深入解析与实战

1.Zabbix 1.1.监控概述 监控是指对行为、活动或其他变动中信息的一种持续性关注&#xff0c;通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制&#xff0c;事后追责目标&#xff1a;早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要…

基于SSM的社区生鲜电商平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Google Analytics优缺点分析

Google Analytics是一款广泛使用的网站分析工具&#xff0c;它能够帮助网站和应用程序的拥有者收集和分析数据&#xff0c;并提供有关用户行为、流量来源和转化率等方面的详细见解。本文小编将讲讲关于Google Analytics的优缺点分析。 一、Google Analytics优点 1、免费使用&a…

万宾科技内涝积水监测仪使用效果一览

当一个城市突降暴雨&#xff0c;对城市管理部门来讲首当其中的是防止积水成患。随着城市人口快速增长&#xff0c;基础设施建设也日益受到更多的关注&#xff0c;城市内涝问题频繁增加&#xff0c;会给城市带来严重的经济损失和人员的安全问题。城市生命线工程建设过程中&#…

线程池创建、执行、销毁的原理解析

目录 线程池的执行原理线程执行参考&#xff1a; 线程池的执行原理 假设最大核心数是2&#xff0c;非核心线程数为1&#xff0c;队列长度是3 来第一个任务的时候&#xff0c;没有工作线程在工作&#xff0c;需要创建一个 来第二个任务的时候&#xff0c;发现当前核心线程数…

数字滤波器分析---零极点分析

数字滤波器分析---零极点分析 zplane 函数绘制线性系统的极点和零点。 例如&#xff0c;在 -1/2 处为零且在 0.9e−j2π0.3 和 0.9ej2π0.3 处有一对复极点的简单滤波器为 zer -0.5; pol 0.9*exp(j*2*pi*[-0.3 0.3]); 要查看该滤波器的零极点图&#xff0c;您可以使用 z…

Simulia仿真之CST的使用指南(1) | 百世慧®

前言 CST是Computer Simulation Technology的缩写,是全球范围内众多工程师都喜欢使用的高端电磁仿真分析软件。 本文又名《智慧的CST生活》这里一共列出了120个章节&#xff0c;其中包括CST使用过程中的有用小技巧&#xff0c;还有给用户提供技术支持的过程中常见的问题。本专…

金蝶云星空表单插件实现父窗体打开子窗体,并携带参数到子窗体

文章目录 金蝶云星空表单插件实现父窗体打开子窗体&#xff0c;并携带参数到子窗体父窗体打开子窗体准备设置携带参数打开子窗体子窗体接收参数 金蝶云星空表单插件实现父窗体打开子窗体&#xff0c;并携带参数到子窗体 父窗体打开子窗体准备 BillShowParameter OtherInAdd n…

TDD、BDD、ATDD以及SBE的概念和区别

在软件开发或是软件测试中会遇到以下这些词&#xff1a;TDD 、BDD 、ATDD以及SBE&#xff0c;这些词代表什么意思呢&#xff1f; 它们之间有什么关系吗&#xff1f; TDD 、BDD 、ATDD以及SBE的基本概念 TDD&#xff1a;&#xff08;Test Driven Development&#xff09;是一种…

Git 入门使用

一、Git 入门 1.1 Git简介 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。Git是由Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 Git是目前世界上最先进的分布式版本控制系统&#xff0c;没有之一&a…

行情分析——加密货币市场大盘走势(11.10)

大饼今日继续上涨&#xff0c;正如预期&#xff0c;跌不下来&#xff0c;思路就是逢低做多。现在已经上涨到36500附近&#xff0c;目前从MACD日线来看&#xff0c;后续还要继续上涨&#xff0c;当然稳健的可以不做。昨日的策略已经达到止盈&#xff0c;也是顺利的落袋为安啦。一…

黑洞路由的几种应用场景

第一种在内网中产生环路&#xff1a; 这种核心交换机上肯定写一条默认路由 0.0.0.0 0 10.0.0.1 出口路由要写一条192.168.0.0 16 10.0.0.2 如果出口路由访问一条不存在的内网网段&#xff0c;又或者访问的那台终端停机了&#xff0c;那就会产生三层环路&#xff0c;数据包在…

Sentinel网关限流

背景 在微服务架构下&#xff0c;每个服务的性能都不同&#xff0c;为避免出现流量洪峰将服务冲垮&#xff0c;需要依赖限流工具来保护服务的稳定性。sentinel是阿里提供的限流工具&#xff0c;社区活跃&#xff0c;功能也很全面&#xff0c;包含实时监控、流控、熔断等功能。…

实现智慧工地的高效建筑管理,数据分析起着关键作用!

智慧工地是利用物联网、云计算、大数据等技术&#xff0c;实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式。 智慧工地架构&#xff1a; 1、终端层&#xff1a;充分利用物联网技术、移动应用、智能硬件设备提高现场管控能力。通过RFID、传感器、摄像头、手机等终端…

很多个pdf怎么合并在一起?

很多个pdf怎么合并在一起&#xff1f;作为一个办公室的伙伴&#xff0c;对于PDF格式肯定不会陌生。它强大的功能为我们的工作提供了许多便利。由于PDF文件格式的稳定性和安全性较高&#xff0c;我们通常在工作或学习中使用它来传输文件&#xff0c;很多人都喜欢将办公文件都做成…