go语言基础
开发环境
1. go安装包
1 | https: //golang.google.cn/dl/ |
2.go的开发IDE
1 2 3 4 5 6 7 8 | https: //www.jetbrains.com 直接下一步,它会自动将 go 的环境添加到全局环境 注意: goland创建项目,选择 go 的安装路径(默认是自动选中) gopath: 所有的代码必须放在这个路径下的src文件夹下,否则无法执行,默认创建到用户目 录下的 go 文件夹,所有的系统都是一样的 取消掉 index entire gopath,否则默认将路径加到全局环境 路径和文件都不要出现中文 |
Go语言简介
1 | go 语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go=C+Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。 |
go语言特点
1. 从c语言中继承了很多理念,包括表达式语法,结构控制,基础数据类型,调用参数传值,指针等等,也保留了和c语言一样的编译执行方式及弱化的指针。
2. 引用包的概念,用于组织程序结构,Go语言的**一个文件都要属于一个包**,而不能单独存在。
3. 垃圾回收机制,内存自动回收,不需开发人员管理。
4. 天然并发(重要特点)
- 从语言层面支持并发,实现简单;
- goroutine,轻量级线程,**可实现大并发处理**,高效利用多核优势;
- 基于CPS并发模型(Communicating Sequential Processes)实现;
- 吸收了管道通信机制,形成Go语言特有的管道channel;
- 通过管道channel,可以实现不同的gorute之间的相互通信
- 函数返回多个值
新的创新:比如切片、延时执行defer等
go的常用命令
go version go env # go 的环境变量 set GO111MODULE= 空的,现在没有使用model模式 set GOPATH=C:\Users\小子\ go 代码存放的路径 set GOROOT=E:\ go go sdk安装的路径 //------------------------------------------------ go build # 编译型语言,需要先编译在执行,编译成可执行文件,执行可执行文件 go run #编译并执行,开发阶段用,两步并做一步 go get # 下载并安装依赖,相当于pip和npm go fmt # 自动格式化代码 |
hello,world!
Go 语言的基础组成有以下几个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # 1 写出go函数 package main // 声明包名, 包名是main 每一个文件都属于某一个包 import "fmt" // 导入包,内置包,fmt包中提供格式化,输出,输入的函数 func main() { // 定义一个main函数 fmt.Println( "hello,world!!" ) // 打印函数==print() } // 单行注释 /* 多行注释 */ # 2. 在控制台执行 go build e:\go_project\src\go_code\project01\main> go build hello. go 补充: go build -o myhello.exe hello. go 可以自定义命名生成的exe文件名称,默认为 go 文件名称 # 3. 在控制台执行编译的go.exe e:\go_project\src\go_code\project01\main>hello.exe hello,world!! # 或者 go run s1.go 编译并执行 go 的注释 // 单行注释 /* 多行注释 */ |
goland版本:直接右键执行
入口
* go 所有的编译型语言运行都要有一个入口
* go的入口是main包下的main()函数
* main包下不可以有多个main函数
* 当你创建多个go文件可以写main函数,因为设置的是以file执行,不是以项目来执行
Go开发注意事项:
1 2 3 4 5 6 7 | Go源文件以“ go ”为扩展名; Go应用程序的执行入口是main()函数; GO语言严格区分大小写; Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性; Go编辑器是一行行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错; Go语言定义的变量或者 import 的包如果没有使用到,代码是不能编译通过的; 大括号是成对出现的,缺一不可。 |
Go语言的转义字符(escape char)
常用转义字符说明:
Golang开发中常见问题和解决方法
1.找不到文件
Go语言注释
1 2 3 4 5 6 | 注释说明: // 单行注释 /* 多行注释 */ |
Go规范的代码风格
1 2 3 4 | // 注解: gofmt go 文件 把格式化后的内容打印出来,源文件内容不变 gofmt -w go 文件 直接将源文件内容格式化好,不会打印 go fmt go 文件 将源文件内容格式化好,需要格式化的,会打印文件名,不需要格式化的,就啥打印也没有 |
举例说明:
go标准库API文档
1 2 3 4 | //go文档(需要FQ) https: //golang.org/ //go中文库文档 https: //studygolang.com/pkgdoc |
Dos常用命令
Dos(Disk Operating System)磁盘操作系统
目录操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | // 查看当前目录下的文件 dir // 切换盘符,例如从C盘与D盘之间切换 方法1: C:\Users\v_jiangchun>d: D:\>C: C:\Users\v_jiangchun> 方法2: C:\Users\v_jiangchun>cd /d d: D:\>cd /d c: C:\Users\v_jiangchun> // 切换到当前盘的其他目录 相对路径: E:\>cd go_project 绝对路径: E:\go_project>cd e:\go_project\src\go_code e:\go_project\src\go_code> // 切换到其他盘的其他目录 d:\ go >cd /d e:\go_project e:\go_project> // 切换到上级目录 e:\go_project>cd .. e:\> // 切换到根目录 e:\go_project>cd / e:\> // 新建目录 md 新建一个目录: e:\go_project>md testdir 新建多个目录: e:\go_project>md testdir1 testdir2 // 删除目录 删除空目录: e:\go_project>rd testdir 删除目录以及下面的子目录和文件,不带询问 e:\go_project>rd /q/s testdir1 删除目录以及下面的子目录和文件,带询问 e:\go_project>rd /s testdir2 |
文件操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // 新建或追加内容到文件 d:\test200>echo hello > d:\abc100\abc.txt // 复制或移动文件 复制并重命名: d:\abc100>copy abc.txt d:\test200\ok.txt 移动文件:(写目录是用文件原有的名字,移动时重命名是移过去重新写了名字) d:\test200>move ok.txt f:\ // 删除文件 删除指定文件 d:\abc100>del abc.txt 删除一类文件的所有文件 d:\test200>del *.txt |
其他操作
1 2 3 4 | // 清屏 cls // 退出dos exit |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步