Golang语言初识

news2024/10/6 14:26:36

Windows 下搭建 Go 开发环境-安装和配置 SDK

采用文章

image-20230522100906676

2.5.1介绍了 SDK

  1. SDK 的全称(Software Development Kit 软件开发工具包)
  2. SDK 是提供给开发人员使用的,其中包含了对应开发语言的工具包
2.5.2下载 SDK 工具包
1) Go 语言的官网为:golang.org , 因为各种原因,可能无法访问。
2) SDK 下载地址:Golang 中国 https://www.golangtc.com/download
3) 如何选择对应的 sdk 版本

image-20230522100822552

2.5.3windows 下安装 sdk

  1. Windows 下 SDK 的各个版本说明:

Windows 下:根据自己系统是 32 位还是 64 位进行下载:

32 位系统:go1.9.2.windows-386.zip
64 位系统:go1.9.2.windows-amd64.zi

2) 请注意:安装路径不要有中文或者特殊符号如空格等
3) SDK 安装目录建议:windows 一般我安装在 d:/programs
4) 安装时,基本上是傻瓜式安装,解压就可以使用
5) 安装看老师的演示:
6) 解压后,我们会看到 d:/go 目录,这个是 sdk

image-20230522101031586

image-20230522101053714

如何测试我们的 go 的 sdk 安装成功

image-20230522101122657

2.5.4windows 下配置 Golang 环境变量:

为什么需要配置环境变量
image-20230522101226950

在 Go 开发中,需要配置哪些环境

image-20230522101326878

步骤 1:先打开环境变量配置的界

image-20230522101553223

步骤 2: 配置我们的环境变量

image-20230522101614374

1) Path 这个环境变量不需要在创建,因为系统本身就有,你后面增加即可
2) 增加 Go 的 bin : ;%GOROOT%\bin




上图的一个说明
1) GOPATH :就是你以后 go 项目存放的路径,即工作目录
2) GOPATH:是一个新建的环境变量

image-20230522101712383

Go 语言快速开发入门

2.8.1需求
2.8.1需求
要求开发一个 hello.go 程序,可以输出 "hello,world” 2.8.2

开发的步骤
1) 开发这个程序/项目时,go 的目录结构怎么处理

目录层级结构

image-20230522102049703

image-20230522102153955

对上图的说明
(1) go 文件的后缀是 .go
(2) package main
表示该 hello.go 文件所在的包是 main,go 中,每个文件都必须归属于一个包。
(3) import “fmt” 表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数,比如:fmt.Println
(4) func main() {
}
func 是一个关键字,表示一个函数。
main 是函数名,是一个主函数,即我们程序的入口。
(5) fmt.Println(“hello”)
表示调用 fmt 包的函数 Println 输出 “hello,world” 


3) 通过 go build 命令对该 go 文件进行编译,生成 .exe 文件.

image-20230523155338628

) 运行 hello.exe 文件即可

image-20230523155610102

5) 注意:通过 go run 命令可以直接运行 hello.go 程序 [类似执行一个脚本文件的形式

image-20230523155730904

Golang 执行流程分析

如果是对源码编译后,再执行,Go 的执行流程如下图

image-20230523155819153

如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图

image-20230523155845687

两种执行流程的方式区别


1) 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机
器上,仍然可以运行

2) 如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发
环境,否则无法执行。

3) 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了
很多。

Go 程序开发的注意事项

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

Go 源文件以 "go" 为扩展名。
2) Go 应用程序的执行入口是 main()函数。 这个是和其它编程语言(比如 java/c)
3) Go 语言严格区分大小写。
4) Go 方法由一条条语句构成,每个语句后不需要分号(Go 语言会在每行后自动加分号),这也体现出 Golang 的简洁性。

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

image-20230523160722448

  1. go 语言定义的变量或者 import 的包如果没有使用到,代码不能编译通过。

image-20230523160956185

  1. 大括号都是成对出现的,缺一不可

Go 语言的转义字符(escape char

说明:常用的转义字符有如下:
  1. \t : 表示一个制表符,通常使用它可以排版。

image-20230523162337448

  1. \n :换行符
    image-20230523162424905

  2. \ :一个\

  3. " :一个"

  4. \r :一个回车 fmt.Println("天龙八部雪山飞狐\r

  5. 案例截图

image-20230523162522130

要求

image-20230523162540178

package main
import "fmt"
func main() {      
 fmt.Println("姓名\t年龄\t籍贯\t住址\naike\t26\t河南\t江苏")
}	

image-20230523162754840

  1. 案例截图

在终端打印出如下图所示的效果

package main
import "fmt"
func main() {
    fmt.Println("   ♥♥  ")
    fmt.Println(" ♥    ♥")
    fmt.Println("♥      ♥")
    fmt.Println("♥ go语言♥")
    fmt.Println(" ♥    ♥ ")
    fmt.Println("   ♥♥   ")
}

Golang 开发常见问题和解决方法

文件名或者路径错误

image-20230523162909816

小结和提示

学习编程最容易犯的错是语法错误 。
Go 要求你必须按照语法规则编写代码。如果你的程序违反了 语法规则,例如:忘记了大括号、引号,或者拼错了单词,Go 编译器都会报语法错误,
要求:尝试 着去看懂编译器会报告的错误信息。

注释(comment)

介绍注释
用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去
体现。
2.11.2 在 Golang 中注释有两种形式
1) 行注释
 基本语法
// 注释内容

image-20230523163144104

2) 块注释(多行注释)
 基本语法
/*
注释内容
*/
 举例说明

image-20230523163307531

使用细节
使用细节
1) 对于行注释和块注释,被注释的文字,不会被 Go 编译器执行。
2) 块注释里面不允许有块注释嵌套 [注意一下]

规范的代码风格

正确的注释和注释风格:

1) Go 官方推荐使用行注释来注释整个方法和语句。
2) 带看 Go 源码

正确的缩进和空白

1) 使用一次 tab 操作,实现缩进,默认整体向右边移动,时候用 shift+tab 整体向左移
看老师的演示:
2) 或者使用 gofmt 来进行格式化 [演示]
2) 或者使用 gofmt -w  来进行格式化 会保存

image-20230523163627604

  1. 运算符两边习惯性各加一个空格。比如:2 + 4 * 5。

  2. 一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅

image-20230523165400863

Golang 官方编程指南

Golang 官方网站 https://golang.org

image-20230523165443801

点击上图的 tour -> 选择 简体中文就可以进入中文版的 Go 编程指南 。

image-20230523170008978

Golang 官方标准库 API 文档, https://golang.org/pkg 可以查看 Golang 所有包下的函数和使

image-20230523170042629

解释术语:API

api : application program interface :应用程序编程接口。 就是我们 Go 的各个包的各个函数

Golang 标准库 API 文档

1) API (Application Programming Interface,应用程序编程接口)是 Golang 提供的基本编程接口。
2) Go 语言提供了大量的标准库,因此 google 公司 也为这些标准库提供了相应的 API 文档,用于告
诉开发者如何使用这些标准库,以及标准库包含的方法。
3) Golang 中文网 在线标准库文档: https://studygolang.com/pkgdoc
4) Golang 的包和源文件和函数的关系简图

image-20230523170224116

知识回顾

Go 语言的 SDK 是什么?
Go 语言的 SDK 是什么?
SDK 就是软件开发工具包。我们做 Go 开发,首先需要先安装并配置好 sdk.  Golang 环境变量配置及其作用。
GOROOT: 指定 go sdk 安装目录。
Path: 指令 sdk\bin 目录:go.exe godoc.exe gofmt.exe
GOPATH: 就是 golang 工作目录:我们的所有项目的源码都这个目录下。


 简述:在配置环境、编译、运行各个步骤中常见的错误
对初学者而言,最容易错的地方拼写错误。比如文件名,路径错误。拼写错误

Golang 程序的编写、编译、运行步骤是什么? 能否一步执行?
编写:就是写源码
编译:go build 源码 =》 生成一个二进制的可执行文件
运行:1. 对可执行文件运行 xx.exe ./可执行文件 2. go run 源码
Golang 程序编写的规则。
1) go 文件的后缀 .g
2) go 程序区分大小写
3) go 的语句后,不需要带分号
4) go 定义的变量,或者 import 包,必须使用,如果没有使用就会报错
5) go 中,不要把多条语句放在同一行。否则报错
6) go 中的大括号成对出现,而且风格
func main() {
//语句
}

对初学者而言,最容易错的地方拼写错误。比如文件名,路径错误。拼写错误


###### Golang 程序的编写、编译、运行步骤是什么? 能否一步执行?

```shell
编写:就是写源码
编译:go build 源码 =》 生成一个二进制的可执行文件
运行:1. 对可执行文件运行 xx.exe ./可执行文件 2. go run 源码
Golang 程序编写的规则。
1) go 文件的后缀 .g
2) go 程序区分大小写
3) go 的语句后,不需要带分号
4) go 定义的变量,或者 import 包,必须使用,如果没有使用就会报错
5) go 中,不要把多条语句放在同一行。否则报错
6) go 中的大括号成对出现,而且风格
func main() {
//语句
}

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

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

相关文章

基于单片机的步进电机驱动电路设计

基于单片机的步进电机驱动电路设计 步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。 有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动…

Flask 设置头像及创建帖子模型类

我们经常在一些网站上看到,在用户没有自定义头像的情况下,会给每个用户都生成一个头像,这让网站显得更美观,那这个是怎么实现的呢?在Flask中有一个插件,叫做Flask-avatars,专门提供头像解决方案…

UNIX网络编程卷一 学习笔记 第十五章 Unix域协议

本书中,作者说Unix域数据报套接字是不可靠的,这一说法已经过时,当前大多实现中,Unix域套接字都是可靠的,不论是数据报套接字还是字节流套接字。 Unix域协议不是一个实际的协议族,而是单个主机上执行客户/服…

人员定位及轨迹管理技术原理及应用领域

人员定位及轨迹管理的实现涉及多种技术和设备。例如,在GPS定位方面,使用卫星系统可以提供全球范围内的准确定位信息。然而,GPS在室内环境下的信号覆盖可能存在限制,因此在室内定位应用中,常常采用无线传感器网络&#…

Python简单的验证码识别: 图片验证, 滑动验证, 点选验证...

目录 前言环境使用:模块使用:代码展示图片验证码滑动验证码:点选验证: 尾语 💝 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: selenium --> pip install selenium3.141.0 ddddocr --> pip i…

springcloud-alibaba (03)sentinel实现规则持久化-流控规则为例

Sentinel和Nacos的整合可以实现规则动态配置,即在Nacos中修改规则后,Sentinel能够实时地读取并应用新的规则。而规则持久化则是指将规则保存在Nacos中,以避免意外故障或重启时规则被丢失。 实现规则持久化,可以按照以下步骤进行操…

龙蜥白皮书精选:利用 io_uring 提升数据库系统性能

文/高性能存储 SIG 01 背景介绍 传统的 IO 软件栈已经无法完全释放出高性能存储设备的性能,高性能 IO 栈是当前存储领域重点研究的课题之一,代表性的如用户态方案 SPDK,以及标准的内核态方案 io_uring。 02 关键技术 Linux 社区从零开始设…

Raft算法

这是一种选举算法,用来确认分布式架构下主节点(领导者)是哪一个结点 只有成为了主节点才能向其他结点进行指令的下达来进行数据的同步 三种角色:追随者Follower,候选人Candidate,领导者leader (1)追随者Follower:接收…

电脑版pdf阅读器有哪些?编辑途径分析

PDF 阅读器电脑版是一种十分流行的电子文档阅读工具,它可以让用户在电脑上轻松地阅读各种文档,包括 PDF 文件。在数字化信息时代,PDF 阅读器电脑版已经成为了许多人电脑上必备的工具之一。本文将探讨 PDF 阅读器电脑版的优缺点,以…

【面试题】面试官:谈谈你知道的DOM常见的操作

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 面试官:“谈谈你知道的DOM常见的操作” 紧张的萌新:“可以获…

达梦数据库索引的建立使用

达梦数据库支持聚集索引,复合索引,函数索引,唯一索引,位图索引等等。 一.建立索引的准则 1.1在表中插入数据后创建索引 一般情况下,在插入或装载了数据后,为表创建索引会更加有效率。如果在装载数据之前…

基于最新SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

目录 第一章 理论基础与研究热点 第二章 SolVES 4.0 模型运行环境配置 第三章 SolVES 4.0 模型运行 第四章 数据获取与入库 第五章 环境变量与社会价值的相关分析 第六章 拓展案例分析 SolVES模型(Social Values for Ecosystem Services)全称为生态…

功能开发如何实现多终端设备上的体验统一?

多端能力服务统一(Multi-Experience Service Orchestration,MESO)是一种技术和服务架构的概念,旨在为多种终端设备提供统一的用户体验和功能。它解决了在不同终端设备上使用不同应用程序和服务时出现的问题,使得用户可…

【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

文章目录 系列文章目录👹 关于作者一、回顾二、容器进程的文件系统是什么样子的?rootfs一致性解决应用依赖关系解决复用性 三、OverlayFS 联合文件系统先决条件overlay2 驱动程序如何工作结构图探索含义-磁盘上的镜像层和容器层镜像层容器层 四、overlay…

Lua学习笔记:浅谈对闭包的认识

前言 本篇在讲什么 我们从几个方面简单认识和理解lua的闭包 本篇适合什么 适合初学Lua的小白 本篇需要什么 对Lua语法有简单认知 依赖Lua5.1的环境 依赖Sublime Text3编辑器 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全…

docker 安装常用软件

安装docker 下载docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun修改镜像仓库 vim /etc/docker/daemon.json{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"] }查看docker …

Adapt Learning使用教程(Adapt Framework/Adapt Authoring)(一)

因为这是一个外国的技术,在国内又很小众,再加上公司业务需要用到这个东西所以就来总结一下。刚接到任务的时候也是稀里糊涂的,官网全是英文,国内也搜不到教程,让使用这个变得难上加难,没有其他教程参考我只…

InetAddress类

1. 简介 java.net.InetAddress类是Java对Ip地址的高层表示。大多数其他网络都要用到这个类,包括Socket、ServerSocket、URL、DatagramSocket、DatagramPacket等。一般来讲,它包括一个主机名和一个IP地址。它提供了获取和操作 IP 地址的方法,…

OceanBase 4.1解读:我们支持MySQL 8.0哪些新增功能特性?

本文主要介绍 OceanBase 在 4.1 版本发布之际,对 MySQL 8.0 新增功能特性的支持情况。文章作者刘彬,OceanBase高级技术专家。曾参与 OceanBase RS、存储模块研发,目前是 SQL 执行组负责人。 MySQL 在业内是最受欢迎的关系数据库之一&#xff…

UOS下使用HHDESK文本对比功能

UOS系统从开发至今,虽然进展很大,但受限于一些因素,所支持的功能和软件,目前仍不多。 HHDESK便是其中佼佼者之一。 此篇介绍的便是HHDESK的一项便捷功能——文本对比。这个功能针对办公人员所开发,使得原本复杂的UOS…