Go-Golang学习总结笔记
Posted lady_killer9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go-Golang学习总结笔记相关的知识,希望对你有一定的参考价值。
目录
简介
开发者
- Ken Thompson(肯·汤普森):1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言,同时也是C语言的主要发明人。
- Rob Pike(罗布-派克):曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8字元编码。
- Robert Griesefmer:曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
发明Go的原因
- 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
- 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。【现有的编程语言:1.风格不统一2.计算能力不够3.处理大并发不够好】
- 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。
Go的特性
- 需要编译:.go文件----->go build---->编译为.exe文件------->运行.exe文件
- 程序入口是main函数
- 严格区分大小写
- 定义的变量或导入的包没有用到就会编译出错(GoLand直接删除或点击编译运行时删除)
为什么转Go?
C做底层比较适合,Java做应用比较适合,Python做脚本,自动化,人工智能比较适合,而Go做微服务比较适合
个人比较喜欢Go,目前的感觉是Go是C/C++与Python的部分结合,取了优点,也砍掉了很多。
最重要的是,找了实习,需要使用Go语言:)。
资源
书籍
《Go语言圣经》
《Go语言实战》
网站
基础
视频
基础
安装
Go是安装的目前最新版:go1.16.3.windows-amd64.msi
IDE使用的GoLand 2019
调试
Go-解决低版本Goland调试问题:Version of Delve is too old for this version...
代码规范
变量和常量
数据类型
基本数据类型
数字和布尔类型(值类型)
字符和字符串(值类型)
类型转换
派生类型
数组array(值类型)
切片slice(引用类型)
映射map(引用类型)
指针pointer(引用类型)
运算符
流程控制
分支和循环
Go-分支和循环总结(if、else、switch、for、range、continue、break等)
函数(引用类型)
Go-函数详解(参数、返回值、init函数、匿名函数、defer)
面向对象编程
结构体struct(值类型)
Go-结构体类型详解(声明、初始化、结构体指针、方法、序列化等)
接口interface(引用类型)
类型断言
Go-动态类型与类型断言详解(含type-switch及全部代码)
面向对象特性
错误和异常
包
go命令
Go-常用命令go的使用(build、env、run、fmt等)
数据结构和算法
链表
单链表
双链表
栈和队列
查找
排序
sort
提高
函数式编程
生成器与迭代器
标准库
输入输出
fmt、bufio、os
操作系统相关
os(文件操作)、bufio、ioutil
Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)
runtime
syscall
path
时间和日期
time
高并发
Go-并发编程基础(goroutine、channel、select等)
反射
测试
testing
加解密相关
cypto
对称加密
非对称加密
哈希算法
消息认证
数字签名
证书
pki
网络编程
日志
log、logrus
设计模式
创建型
未完待续...慢慢更...
以上是关于Go-Golang学习总结笔记的主要内容,如果未能解决你的问题,请参考以下文章