【golang学习之旅】Go程序快速开始 Go程序开发的基本注意事项

系列文章

【golang学习之旅】使用VScode安装配置Go开发环境
【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】深入理解字符串string数据类型
【golang学习之旅】go mod tidy
【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option


目录

  • 系列文章
  • 快速开始
    • Hello World
    • 代码解释
    • 编译和运行
  • Go程序开发的注意事项


快速开始

Hello World

先在本地创建一个目录,用来放我们后面的练习代码:

在这里插入图片描述

打开VScode,点击下面绿框里的按键来打开我们上面创建的目录
在这里插入图片描述

然后在这个目录下创建一个main目录,main目录下创建一个以.go为后缀的文件,名为hello_world.go

在这里插入图片描述

在文件里写入下面的代码:

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

打开VScode的terminal,进入到go文件所在的目录下

在这里插入图片描述

然后使用go build命令对该go文件进行编译,如果编译成功则在该目录下生成 一个同名的.exe文件(Windows)

在这里插入图片描述

然后执行该exe文件

在这里插入图片描述


代码解释

我们来解读这个代码

package mainimport "fmt"func main() {fmt.Println("Hello World")
}
  • package main

    • Go 语言的代码通过(package)组织,包类似于其它语言里的库(libraries)或者模块(modules)。一个包由位于单个目录下的一个或多个 .go 源代码文件组成,目录定义包的作用
    • 每个源文件都以一条 package 声明语句开始,这个例子里就是 package main,表示该文件属于哪个包
  • import "fmt"

    • 导包。包名一般都是小写
  • func main() {}

    • func关键字定义了一个函数,函数名为main
    • 一个函数的声明由 func 关键字、函数名、参数列表、返回值列表(这个例子里的 main 函数参数列表和返回值都是空的)以及包含在大括号里的函数体组成
    • main 函数是整个程序执行时的入口
  • fmt.Println("Hello World")

    • Println是fmt包里的一个基础函数,可以打印以空格间隔的一个或多个值,并在最后添加一个换行符,从而输出一整行
    • Go语言严格区分大小写。若一个包的函数要被其他包里的代码调用,那么这个函数名需要首字母大写
    • 在使用其他包的函数时,一般都是 包名.函数名 的格式

编译和运行

上面的方法是先编译再运行,实际上可以直接使用go run命令直接编译运行,但这种方式不会在目录下生成exe可执行文件

而可执行文件可以在没有Go开发环境的机器上运行

在这里插入图片描述

注意:

  • go build可以指定可执行文件的文件名(在Windows系统中必须以.exe为后缀):go build -o hello.exe

  • 如果程序有错误,在编译时会在错误的那行报错


Go程序开发的注意事项

  1. Go源文件以 “go”为扩展名

  2. Go程序的执行入口是main()函数

  3. Go语言严格区分大小写

  4. Go方法是由一条条语句构成,每个语句后不需要分号,因为Go的编译器会主动把特定符号后的换行符转换为分号

  5. Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句卸载同一行,否则报错

  6. Go程序中定义的变量或者import的包如果没有使用到,代码不能编译通过,IDE也会报红提示

    在这里插入图片描述

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

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

相关文章

1台UG图形工作站实现5-7人共享使用

随着计算机辅助设计(CAD)和计算机辅助制造(CAM)技术的不断发展,UG图形工作站已成为许多行业不可或缺的重要工具。 对于许多中小型企业而言,购买多台高性能的UG图形工作站无疑是一笔巨大的开销,…

朝阳医院2018年销售数据 数据分析与可视化

代码及数据集下载传送门 数据分析与可视化-朝阳医院2018销售数据-ipynbcsv 实践内容 以朝阳医院2018年销售数据为例,目的是了解朝阳医院在2018年里的销售情况,这就需要知道几个业务指标,本次的分析目标是从销售数据中分析出以下业务指标&am…

国产口碑最佳的骨传导耳机有哪些?精选五大高人气骨传导耳机推荐!

作为一名音乐爱好者与耳机评测师,我对骨传导耳机这类独特的音频设备有着深入的了解,身边的朋友们也时常向我咨询关于骨传导耳机的各种问题。大部分都在问“骨传导耳机怎么选?有没有好用的骨传导耳机推荐”,随着骨传导耳机逐渐热门…

vxe-table 列表过滤踩坑_vxe-table筛选

但是这个过滤输入值必须是跟列表的值必须一致才能查到,没做到模糊查询的功能,根据关键字来过滤并没有实现。 下面提供一下具体实现方法:(关键字来过滤) filterNameMethod({ option, row }) {if (row.name.indexOf(op…

MATLAB直方图有关的函数

histogram Histogram plot画直方图 histcounts 直方图 bin 计数 histcounts是histogram的主要计算函数。 discretize 将数据划分为 bin 或类别 histogram2 画二元直方图 histcounts2 二元直方图 bin 计数 hist和histc过时了。替换不建议使用的 hist 和 histc 实例 hist → \r…

Representation RL:HarmonyDream: Task Harmonization Inside World Models

ICML2024 paper code Intro 基于状态表征的model-based强化学习方法一般需要学习状态转移模型以及奖励模型。现有方法都是将二者联合训练但普遍缺乏对如何平衡二者之间的比重进行研究。本文提出的HarmonyDream便是通过自动调整损失系数来维持任务间的和谐,即在世界…

低投入+高效率的求职招聘小程序源码系统平台版 带完整的安装代码包以及搭建教程部署教程

系统概述 在当今数字化时代,求职招聘领域的竞争日益激烈。传统的求职招聘方式逐渐显露出效率低下、成本高昂等问题。为了满足市场需求,提高求职招聘的效率和便捷性,同时降低企业和求职者的成本,“低投入高效率的求职招聘小程序源…

某全国增值税发票查验平台 接口JS逆向

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 本文的验证码网址如下,使用base64解码获得 aHR0cHM6Ly9pbnYtdmVyaS5jaGluYXRheC5nb3YuY24v 这个平台功能没什么好说的,就是发票查验&am…

揭秘融资融券中的生命线——维持担保比例

01 通俗讲解融资融券 1、融资融券交易,又称信用交易,是指投资者向证券公司提交保证金 ①在看涨时,从证券公司借入资金低价买入证券再高价卖出;(加杠杆) ②在看跌时,从证券公司借入证券高价卖…

打开 RAG 对接大模型的黑盒 —— 9 大隐藏问题

前一段时间,各个大模型在争斗:谁能携带更长、更大的上下文 Prompt,比如 Kimi 说 200 万字,阿里通义千问又说自己能达 1000 万字;大家都知道 Prompt 很重要,但是 RAG 和 长的上下文文本携带 是两个不同的技术…

车载网络安全指南 网络安全框架(二)

返回总目录->返回总目录<- 目录 一、概述 二、网络安全组织管理 三、网络安全活动 四、支撑保障 一、概述 汽车电子系统网络安全活动框架包含汽车电子系统网络安全活动、组织管理以及支持保障。其中,网络安全管理活动是框架的核心,主要指汽车电子系统生命周期各阶段…

Agentic RAG 与图任务编排

一个朴素的 RAG 系统流程是这样的&#xff1a;先由用户提出问题&#xff0c;然后系统基于用户提问进行召回&#xff0c;对召回结果进行重排序&#xff0c;最后拼接提示词后送给 LLM 生成答案。 一部分简单场景下&#xff0c;朴素的 RAG 已经可以满足用户意图明确的场景的要求&a…

无线麦克风推荐哪些品牌,热门领夹无线麦克风哪个好,看本期文章

​在信息爆炸的今天&#xff0c;高品质的无线领夹麦克风能让声音更清晰响亮。技术发展带来多样化选择同时也带来选择困难。根据多年使用经验和行业反馈&#xff0c;我推荐一系列可靠、易用且性价比高的无线领夹麦克风&#xff0c;助你作出明智选择。还要不知道该怎么选无线领夹…

AJAX 综合案例-day2

Bootstrap 弹框 功能&#xff1a;不离开当前页面&#xff0c;显示单独内容&#xff0c;供用户操作 步骤&#xff1a; 1. 引入 bootstrap.css 和 bootstrap.js 2. 准备 弹框标签 &#xff0c;确认结构 3. 通过 自定义属性 &#xff0c;控制弹框的 显示 和 隐藏 1. 通过属性…

08--LVS网站高并发解决方案

前言&#xff1a;LVS&#xff0c;工作稳定&#xff0c;抗负载能力强&#xff0c;属于运维基础&#xff0c;这里将lvs两种模式的部署方式在这里记录一下&#xff0c;并在示例完成后&#xff0c;补充一下基础概念。本章不可避免的涉及到一些网络方面知识&#xff0c;会形象简单的…

C#.Net筑基-集合知识全解

01、集合基础知识 .Net 中提供了一系列的管理对象集合的类型&#xff0c;数组、可变列表、字典等。从类型安全上集合分为两类&#xff0c;泛型集合 和 非泛型集合&#xff0c;传统的非泛型集合存储为Object&#xff0c;需要类型转。而泛型集合提供了更好的性能、编译时类型安全…

华为数通——ACL

ACL基本介绍 ACL:访问控制列表&#xff0c;通过端口对数据流进行过滤&#xff0c;ACL判别依据是五元组&#xff1a;源IP地址&#xff0c;源端口&#xff0c;目的IP地址&#xff0c;目的端口、协议。&#xff08;ACL工作于OSI模型第三层&#xff0c;是路由器和三层交换机接口的…

SpringBoot的配置文件和YAML文件的语法

1.SpringBoot的有两种格式的全局配置文件&#xff0c;使用任何一个功能都是一样的 注意&#xff1a;SpringBoot的全局配置文件名都是固定的application.xxx ① application.properties&#xff0c; 这个是默认Spring initializr默认自动生成的配置文件&#xff0c;也是我们属…

2024免费数据恢复工具EasyRecovery电脑必备软件

&#x1f389; 数据安全小能手&#xff0c;EasyRecovery最新功能揭秘 &#x1f513; 亲爱的小红书的朋友们&#xff01;你们有没有因为不小心删除了重要文件而焦急万分&#xff1f;或者因为电脑突然崩溃&#xff0c;担心珍贵的资料丢失&#xff1f;别怕&#xff0c;今天我就来给…

岁月长河中的温柔等待

在那个年代&#xff0c;爱情往往像是一条静静流淌的小河&#xff0c;不动声色却又波澜不惊。在一个小村庄里&#xff0c;住着一对中年夫妻&#xff0c;人们叫他们李大叔和赵阿姨。他们的故事&#xff0c;就像是那个时代的缩影&#xff0c;承载着岁月的沧桑与深情的守候。 李大…