Go 语言学习第一章节
#coding='utf-8'
#Go lang 语言学习开始 ---tady
go 的学习方向
区块链研发工程师
go服务器端/游戏软件工程师
数据处理
处理高并发
go分布式/云计算软件工程师
如何高效的学习go语言
1)高效愉快的学习
2)先建立一个整体的框架,然后细节
- 不要先扣细节,先学会大体在学细节
3)在实际工作中,要培养用到什么,能够快速学习什么能力
4)先Know how ,再Know why 【工科】
5)软件编程是一门“做中学”的学科,不是会了在做,而是做了才会
6)适当的囫囵吞枣
7)学习软件变成是在琢磨别人怎么做,而不是我认为应该怎么做的过程
#Golang 的特点
既保证能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,
使用一个表达式来形容Go语言,Go=c python 说明Go语言既有c静态语言程序的运行速度
又能达到python动态语言的快速开发
1)从C语言继承了很多特性,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,
也保留了c语言一样的编译执行方式及弱化的指针。
2)引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
3)垃圾回收机制,内存自动回收,不需要开发人员管理
4)天然并发(重要特点)
1- 从语言层面支持并发,实现简单
2- goroutine ,轻量级线程,可实现大并发处理,高效利用多核
3- 基于CPS并发模型实现
5)吸收了管道通信机制,形成Go语言特有的管道channel通过管道 可以实现不同的goroute之间相互通信
6)函数返回多个值
#Go 选用开发工具
vscode
1- 初始化工具
2- win下的GO开发环境搭建
安装SDK的软件开发工具包
下载SDK 网站https://golang.google.cn/dl/
安装SDK的软件开发工具包 将bin目录加入环境变量
#GO 语言的快速开发入门
1)需求:
要求开发一个hello.go程序,可以输出”hello,world“ [对go程序基本结构说明]
2)开发步骤
开发程序时候,我们的目录结构怎么处理。
Go程序目录结构
d:/goproject
- src //源代码
- gocode //源代码
project01
main //表示hello.go 文件所在包是main,在go 中每一个文件
都必须归属一个包。
//import ”fmt“ 引入一个包
package
project02
main //包文件
package
3)代码实现
import "fmt"
package main
func main() {
fmt.Println("hello world!")
}
4)编译文件变成可执行文件
cd 到代码路径
go build hello.go //编译文件得到一个可执行文件
go run hello.go //执行源码文件,但是底层还是先编译在执行
#Golang 执行流程的分析
.go文件----编译-----变成.exe可执行文件-----运行
1)编译
编译后的文件会变大,并且可以在没有go环境的计算机执行,源码却不会
编译可以指定编译成功后的二进制文件名 命令 // go build -o myhello.exe
编译出错,会在当前行数有报错,有助于调试
2)执行
直接执行exe 文件
go run 文件
#Go 程序开发的注意事项-*-
1)go源代码文件是以”go“结尾
3)go应用程序的执行入口是main()函数
4)go语言严格群分大小写
5)go方法由一条条语句构成,每个语句后不需要加分号
6)go编译器是一行一行编译的,因此我们一行就写一条语句,不能把多条语句卸载同一个,否则报错
7)go语言定义的变量或者import包没有使用到,代码不能编译通过
8)大括号都是成对出现的,缺一不可
#Go 语言的转义字符
1)\t :一个制表符
2)\n :换行符
3)\\ : 一个\
4)\" : 一个"
5)\r :一个回车
表示从当前行的最前面开始输出,覆盖掉以前的内容 注意:不会换行
"fmt" 包中主要提供格式化,输出输入的函数
输出练习一句话打印下方内容
姓名 年龄 籍贯 住址
john 12 河北 北京
代码:
package main
import "fmt"
func main() {
fmt.Println("姓名\t年龄\t籍贯\t住址\n\rjohn\t12\t河北\t北京")
}
#Go 开发常见问题和解决方法
1)找不到文件
- stat hell1o.go: no such file or directory
2)语法错误
- ./hello.go:4:2: undefined: fmt.Print1n // 提示找不到这个函数,其实是ln 写错了写成1n
#Go 注释代码(重要)
1)注释两种
- 行注释
// 注释的文字内容
- 块注释(多行注释)
/* 注释的文字内容 */
#Go 编码风格规范要求
1)正确的注释和注释风格:
1- 官方推荐使用行注释来注释整个方法和语句
2- 带看Go源码
2)正确的缩进和空白
1- 使用一次tab 操作,实现缩进,默认整体向右边移动,时候用shift tab整体左移
2- 或者使用gofmt 来进行格式化
gofmt -w hello.go //将格式化后的文件重新写入到编码文件
gofmt hello.go //将格式化后的文件显示出来
3- 运算符两边习惯性各加一个空格
4- Go语言中大括号只能放在放在方法后面不能另起一行
5- 每一行不超过80个字符,超过的使用"a","b"分割变成多个字符串
#Go 的官方手册
golang.org
//登录官网ctrl f 搜索 Tour 选中就可以进入手册
进入第二页可以调成中文显示
//ctrl f 搜索 Packages 学习包相关内容
选择对应的包,然后点击Index 就可以看到包下面的功能函数了
#Go 的术语
API解释:
application program interf ace //应用程序编程接口,就是我们包的各个函数。
Go语言提供了大量的标准库,因此google公司也为这些标准库提供了相应的API 文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法
https://studygolang.com/pkgdoc // golang中文包说明
包的结构
fmt //包
源代码文件
每个源代码文件对应多个函数
//源代码中使用包的函数方式
pkname.func 格式
#Go 基础的小结
作业
代码:
package main
import "fmt"
// 这是输出函数,输出一段话
func main() {
fmt.Println("姓名\t Luckychen\n籍贯\t 黑龙江\n性别\t 男\n住址\t 深圳")
fmt.Println("\t*\t\t\t\t\t*")
fmt.Println("*\t\t*\tlove golang\t*\t\t*")
fmt.Println("\t\t*\t\t\t*\t\t")
fmt.Println("\t\t\t*\t*\t\t\t")
fmt.Println("\t\t\t *")
}
您可能感兴趣的文章:
想系统学习GO语言(Golang
golang学习系列——1. go语言的特点
Go语言学习3----Go语言特色
Go语言爱好者周刊:第 78 期 — 这道关于 goroutine 的题
Go语言发展历史、核心、特性及学习路线
Go 语言学习第一章节
Go 语言十年而立,Go2 蓄势待发
视频教程-GO语言开发实战-Go语言
go语言学习笔记(第3章)—面向对象编程
Go 语言到底适合干什么?