【Golang开发入门】你真的会用Go写“Hello world“吗?

news2024/11/27 13:06:45

在这里插入图片描述

  • 博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。
  • 博主主页: @是瑶瑶子啦
  • 所属专栏: Go语言核心编程
  • 近期目标:写好专栏的每一篇文章

在这里插入图片描述

目录

  • 一、Go项目目录结构
  • 二、"hello world"程序——Go实现
  • 三、Go的执行流程
  • 四、Go程序开发注意事项

一、Go项目目录结构

在这里插入图片描述

二、"hello world"程序——Go实现

在项目路径Go-/src/project01/main下创建一个.go文件:hello.go
在这里插入图片描述

go mod init

补充&说明:go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。
go mod命令
常用的go mod命令如下:
go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit 编辑go.mod文件
go mod graph 打印模块依赖图
go mod init 初始化当前文件夹, 创建go.mod文件
go mod tidy 增加缺少的module,删除无用的module
go mod vendor 将依赖复制到vendor下
go mod verify 校验依赖
go mod why 解释为什么需要依赖

使用go module模式创建新项目go mod init 项目名对项目进行初始化。该命令会在项目根目录下生成go.mod文件。下面我们对project01这个项目进行初始

go mod init project 01

编写第一个Go程序:“hello world”

package main	//说明hello.go这个文件在main这个包中

import "fmt"	//导入内置包,可以使用其中函数等

func main(){
	fmt.Println("Hello World!")
}

🫐代码说明

  • Go的每一个文件都必须归属于一个包,不能独立于包而存在,所以需要在每一个.go文件上声明该文件所属哪一个包: package xxx
  • import module方式,导入内置包,使用其中函数等
  • func,关键字,声明函数
  • main函数是go程序执行的入口

注意,编写完后,需要保存ctrl +s,编辑器已经配置了auto save功能不需要

go build(编译)

该.go文件所在目录,打开终端,使用go build命令,将源代码编译,生成.exe文件

go build

在这里插入图片描述
编译完成之后,可以直接执行

运行.exe

编译好后,可以直接Win+R->cmd调出dos命令行,直接在终端执行可执行文件
在这里插入图片描述

💁🏻‍♂️Tips:
使用go build -o命令,还可以指定有源代码编译后生成的可执行文件的名字!(默认会以该文件所在包为名字)

go build -o hehe.exe hello.go

go run ( 编译+运行)

在项目目录下

go run main.go

本质是在临时目录编译+执行

体现出来类似于执行一个脚本语言
在这里插入图片描述

真正的工作环境中,要先编译再执行

三、Go的执行流程

  • 🥗go build + 执行

    • 执行流程

      • 先将.go源代码文件编译
      • 生成可执行(.exe)文件
      • 执行,生成结果
    • 特点

      • 用户只需要得到可执行文件,在没有Go开发环境的情况下,可以直接运行
  • 🥗go run

    • 执行流程
      • 将.go源代码编译+运行一步到位
      • 得到程序运行结果
    • 特点
      • 看似比较方便,但是如果想在另一个机器上运行程序,必须在机器上安装go的开发环境

四、Go程序开发注意事项

  • go源文件以go为扩展名
  • go程序的入口是main函数
  • 严格区分大小写
  • go的语句后面不需要加分号(编译器会自动给你加)
  • Go编译器是一行一行编译,所以一行语句就写在一行,不要一行写多个语句
  • go语言定义的变量和import的模块,必须要使用,不使用,代码编译不通过
  • 花括号必须成对出现(且花括号不能在一条竖线上,具体请看:

func main(){
	fmt.Println("Hello World!")
}

func main()
{
	fmt.Println("Hello World!")
}

如果对你有帮助还请:点赞+关注+收藏

如果文中有不足还请多多指出

关注我,一起学习Golang!
在这里插入图片描述

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

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

相关文章

Zynq-7000、FMQL45T900的GPIO控制(六)---linux驱动层配置GPIO输入输出控制

本文使用的驱动代码 Zynq-7000、FMQL45T900的GPIO控制(六)-linux驱动层配置GPIO输入输出控制资源-CSDN文库 在Zynq-7000、FMQL45T900驱动层也时常会用到对GPIO的控制,这里就针对实际使用的情况进行说明,首先根据之前的帖子确实使…

监测HDD smart信息的脚本编写

最近需要完成一个测试HDD的项目,因为接的HDD太多,手动查看smart信息太麻烦,所以需要写一个自动帮我们检查smart信息的脚本。此遍文章只介绍直连或者JBOD模式下的信息监测,没有涉及到组RAID模式。 1 首先看下HDD的smart信息&#x…

谁在成为产业经济发展的推车人?

区域发展的新蓝图中,京东云能做什么?它的角色是什么?这个问题背后,隐藏的不仅是京东云自身的能力和价值,更是其作为中国互联网云厂商的代表之一,对“技术产业”的新论证。 作者|皮爷 出品|产业家 关于云…

饮用水中的六价铬去除工艺

铬是人体必需的微量元素,天然水不含铬,海水中铬的平均浓度为0.05μg/L,饮用水中铬含量更低。 铬在水中主要以三价和六价形式存在,三价的铬是对人体有益的元素,而六价铬是有毒的。由于其毒性之高,已被国家列…

固定转向和行进速度下的车辆轨迹计算方法

游戏车辆固定转向轨迹计算 概述 车辆游戏是我们经常接触到的一类游戏,这里游戏在只用键盘操作时,往往非常不方便。这是因为这一类游戏大部分都是按下按键时转向,释放按键时方向就会自动转正。这种控制方式在实现方面比较容易。但是缺点也很明…

如何实现Canvas图像的拖拽、点击等操作

上一篇Canvas的博文写完后,有位朋友希望能对Canvas绘制出来的图像进行点击、拖拽等操作,因为Canvas绘制出的图像能很好的美化。好像是想做炉石什么的游戏,我也没玩过。 Canvas在我的理解中就好像在一张画布上绘制图像,它只能看到…

MySQL用的在溜,不知道业务如何设计也白搭!!!

MySQL业务设计 作者: 博学谷狂野架构师GitHub:GitHub地址 (有我精心准备的130本电子书PDF) 只分享干货、不吹水,让我们一起加油!😄 逻辑设计 范式设计 范式概述 第一范式:当关系模式R的所有属…

浙江省CIO峰会|数据安全+数字化转型,美创特色实践获“年度数字化赋能服务商”

近日,浙江省CIO年度峰会暨数实融合创新发展大会在杭州成功举办。美创科技受邀参加本次峰会,与全省数字化领袖人才共话数字化发展。 对话数字化转型 美创分享能力实践 在本次峰会以“数字化转型的昨天 今天 明天”为主题的论坛对话环节,美创科…

Win11启用docker报错

这里写自定义目录标题 An unexpected error was encountered while executing a WSLcommand. An unexpected error was encountered while executing a WSLcommand. An unexpected error was encountered while executing a WSLcommand. provisioning docker WSL distros: se…

M2M场景之客户端凭证模式|OIDC OAuth2.0 认证协议最佳实践系列 【4】

在前两篇文章中,我们介绍了 OIDC 授权码以及授权码增强的 PKCE 模式,本次我们将重点围绕 (Client Credentials) 模式进行讲解 ,Client Credentials 模式是 OIDC 授权模式之一,它是一种用于客户端&#xff0…

微信小程序开发一个多少钱

小程序开发是当前比较流行的一项技术服务,能够为企业和个人带来巨大的商业价值和社会价值,但是小程序开发费用也是潜在的成本之一。在选择小程序开发服务时,了解开发费用如何计算、影响价格的因素以及如何降低成本等方面的知识,可…

055:cesium两种方法加载天地影像图

第055个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中用两种方法加载天地影像图。一种是利用WebMapTileServiceImageryProvider,另一种是利用UrlTemplateImageryProvider. 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方…

bug记录:c++ mysql Connector:Lost connection to MySQL server during query

1.背景 使用mysql connector1.1.4版本,代码中有 mysql 连接池,每次执行 sql 时从连接池取出一个连接,先用isClosed()判断为false继续使用,否则创建新连接。     现在升级 mysql connector为1.1.13版本,业务代码未修…

Linux进程概念——其二

目录 环境变量 基本概念 常见环境变量 查看环境变量方法 测试PATH[重点] 测试HOME 和环境变量相关的命令 环境变量的组织方式 通过代码获取环境变量 通过系统调用获取或设置环境变量 环境变量通常是具有全局属性的[重点&#xff3d…

学会笔记本电脑录屏快捷键,轻松实现录屏!

案例:笔记本电脑录屏有快捷键吗? 【我每次打开笔记本电脑录屏都要耗费比较长的时间,这样会影响到我录屏的效率。在这里想问一下,有没有快速打开电脑录屏的方法?】 在日常的工作、学习、娱乐中,我们经常需…

算法训练第一周题解汇总

A - Sort the Subarray 大意:在s1找一个最大的 [l,r] 子区间,使其经过从小到大的排序后 能够变成 s2 题解:先确定最小的区间,然后慢慢扩大。 最小区间的确定:s1和s2第一个不相等的数开始,到最后…

浅谈测试用例设计 | 京东云技术团队

作者:京东物流 王莹莹 一、测试用例为什么存在 1.1 定义 测试用例(Test Case)是指对特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,…

pytorch 计算网络模型的计算量FLOPs和参数量parameter之殊途同归

计算网络模型的计算量FLOPs和参数量parameter之殊途同归 参数量方法一:pytorch自带方法,计算模型参数总量参数量方法二: summary的使用:来自于torchinfo第三方库参数量方法三: summary的使用:来自于torchsu…

controlnet1.1预处理器功能详解

ControlNet 1.1 与 ControlNet 1.0 具有完全相同的体系结构,ControlNet 1.1 包括所有以前的模型,具有改进的稳健性和结果质量,但增加并细化了多个模型。 今天太忙了,有时间就把每个模型的测试样稿发出来 2023.4.27 分类预处理器备注模型黑白倒转invert边…

数据库物理存储结构

目录 一、数据库文件和文件组 1、数据库文件 (1) 主数据库文件(Primary Database File) (2) 次数据库文件(Secondary Database File) (3) 事务日志文件 …