Go学习笔记
简单的go代码优雅地解决棘手的并发问题
go 语言代码包 :
fmt 字符串格式化包
flag 接受和解析命令参数包
log 日志输出包,log.Fatal(); 输出致命错误
net/http 网络编程之http包
疑问:
形式参数: r *http.Request
asta 人名
xie 谢孟军 beego作者,goweb编程作者
Beego 构建完整的web项目
精彩评论:
go 简洁 高效
- 语言层面,组合代替继承,接口实现无需申明
- groutine 简洁优雅
- 编译速度快,跨平台
- 适合团队协、后台高并发服务,唯一缺点也算是平台定位吧,就是有GC
语言层面支持并发、丰富的标准库,内置强大的工具
go语言在服务器编程、分布式系统、数据库里面作用很大,可以做底层到前端的任何工作,docker就是go写的
GOROOT : GO语言安装的安装路径
GOPATH : 若干工作区目录的路径。是我们自己定义的工作空间
GOBIN : GO程序生成的可执行文件(executable file)的路径
面试题: 设置GOPATH有什么意义吗?
GOPATH 全局GOPATH,项目GOPATH
多个工程 http://c.biancheng.net/view/88.html
GOPATH GO的工作区workspace ,需要利用工作区,去放置go语言的源码文件source file,以及安装install后的归档文件和可执行文件
source file 源码文件
archive file 归档文件
executable file 可执行文件
命令源码
包源码
可执行命令必须使用package main
包名: 使用目录文件名
新接触的go命令:
go run
go test 测试代码
go get 获取远程代码包
go 基本语法
-
变量声明 常量声明
变量命令小写,常量命令首字符大写 -
函数声明
-
基本类型
bool
string
int 整形 int8 ...
uint 无符号整形 unit8 ...
byte unit8 的别名
rune int32 的别名
float32 float64
complex64 complex128
go语言中不同的数据类型项之间赋值时需要显式转换
fmt.Printf()
%T 数据类型
%v 原始值
%q 字符串值
%s 字符串值
指针
结构体 struct 就是一组字段field
结构体指针 可读性是真的差了
数组
T类型? 自定义的类型(结构体的名字,数字的名字)
数组 大小固定、不能改变
切片 切片为数组元素提供动态的大小的、灵活的视角,切片比数组更常用
4. 流程控制语句
5. 方法和接口
方法即函数,方法只是个带接受者参数的函数
方法参数的接收者
直接接收者
指针接收者
由于方法经常需要修改它的接收者,指正接受者比直接接收者更常用
- 是go语言里面的指针操作符
& 操作符是指定指针的引用
接口类型: 是由一组方法签名定义的集合
现在被指针、方法、接口搞得有点晕
目前看来,这可读性真的是差了
空接口,用来传递不确定的参数类型,或者不确定的参数个数
6. 类型断言
7. 内置接口
8. 并发 goroutine 是由Go运行时管理的轻量级线程
sync go线程同步,一般不使用,而是使用信道来共享内存的
信道:信道是带有类型的管道,你可以通过它用信道操作符 <- 来发送或者接收值。
信道操作符 <- 箭头就是数据流的方向
- GO web 编程,
实现、简单的用户的CRUD,登录态保存....
对go大概 有了一个了解,现在就是怎么应用和熟悉?
写demo
写应用
写点web编程相关的吧
Python 是一种广泛使用的解释型,高级编程,通用型编程语言
Go 是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
PHP 是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用
Go撰写风格:
- 每行结束不需要写分号;
- if/for 循环不需要以小括号包括起来
go 有内置的gofmt工具,能够自动整理代码多余的空白、变量名称对齐,并将对齐空格转换成Tab
go适合做什么,为什么那么多人偏爱他 https://blog.csdn.net/m0_37125796/article/details/85019155
============================================================
两种源码文件: 命令源码文件,库源码文件
go build构建 库源码文件操作的结果会放到临时目录 GOCACHE=C:\Users\Administrator\AppData\Local\go-build,命令源码文件操作的结果会放到源码文件所在的目录。构建的注意意义在于检查和验证。
go install 安装: 库源码文件结果文件放到工作区的pkg目录下,命令源码文件结果文件放到bin目录下
go build -x -n -v -a
go的指针可读性差,注意看应用的场景怎么样
T type 类型
go 的内置包
fmt format fmt 格式化输出
pkg package
程序的包申明一定要与父级目录的名称一致。
名称首字母为大写的程序石头才可以被当前包外的代码引用,否则只能被当前包内的其它代码引用
库源码文件
命令源码文件
=========================================================================================================