【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图形工作站无疑是一笔巨大的开销,…

拼多多商品全流程自动化采集

拼多多商品-自动化采集 本文简单介绍拼多多商品-全流程自动化采集助手的部分功能。 项目交流—— 🛰️威v-讯x-:chaohuo8080 一、产品概述 拼多多商品-全流程自动化采集助手采用自动化技术和智能算法,能够自动完成从商品搜索、信息抓取、数…

朝阳医院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 和 长的上下文文本携带 是两个不同的技术…

【Python深度学习】——使用Logging记录模型训练过程

【Python深度学习】——使用Logging记录模型训练过程 1. 导入logging库, getLogger()创建日志记录器2. logger.setLevel()设置log级别3. FileHandler()设置日志文件路径4. StreamHandler()将日志输出到控制台5. 其他性质6. 代码示例 1. 导入logging库, getLogger()创建日志记录…

springboot集成官方fastdfs以及fastdfs开启防盗链踩坑

目录 一、fastdfs原理 二、在springboot中使用fastdfs 三、fastdfs开启防盗链功能 四、fastdfs开启token验证踩坑 一、fastdfs原理 FastDFS是一个开源的轻量级分布式文件系统,它通过两个主要角色——跟踪器(Tracker)和存储节点(Storage)——来管理文件。 Tracker 主要…

Python在SQLite中的应用:从入门到进阶

Python在SQLite中的应用:从入门到进阶 Python作为一门高效、灵活的编程语言,广泛应用于各种数据处理和分析任务。而SQLite是一种轻量级的数据库管理系统,特别适合于嵌入式应用和小型项目。在本篇博文中,我们将深入探讨Python在SQ…

【Academy】OS command injection 操作系统命令注入

OS command injection 操作系统命令注入 1. 什么是OS命令注入?2. 注入操作系统命令3. Blind OS命令注入漏洞4. 注入操作系统命令的方法5. 如何防止OS命令注入攻击 1. 什么是OS命令注入? 操作系统命令注入也称为shell注入。它允许攻击者在运行应用程序的…

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

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

Agentic RAG 与图任务编排

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

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

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

深度学习探索-基础篇-正则化篇

文章目录 一、正则化介绍1.1 正则化的简介1.2 正则化的方法介绍1.3 正则化的用途 二、正则化的详细介绍2.1 L1正则化2.2 L2正则化2.2.1 L2正则化的工作原理2.2.2 如何在训练中应用L2正则化2.2.3 L2正则化的效果 2.3 Weight Decay2.4 Dropout 一、正则化介绍 1.1 正则化的简介 …

AJAX 综合案例-day2

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