栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go-Golang学习总结笔记

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go-Golang学习总结笔记

目录

简介

资源

书籍

网站

视频

基础

安装

调试

代码规范

变量和常量

数据类型

基本数据类型

派生类型

运算符

流程控制

分支和循环

函数(引用类型)

面向对象编程

错误和异常

包

go命令

数据结构和算法

链表

栈和队列

查找

排序

提高

函数式编程

生成器与迭代器

标准库

输入输出

操作系统相关

时间和日期

高并发

反射

测试

加解密相关

网络编程

日志

设计模式


简介

开发者

  •  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的原因

  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。【现有的编程语言:1.风格不统一2.计算能力不够3.处理大并发不够好】
  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官方中文网

go官方中文网-包使用手册

菜鸟教程

C语言网

go语言中文网

golang系列

视频

尚硅谷-go语言核心编程

黑马Go语言基础+高级+进阶就业班

基础

安装

Go是安装的目前最新版:go1.16.3.windows-amd64.msi

IDE使用的GoLand 2019

调试

Go-解决低版本Goland调试问题:Version of Delve is too old for this version...

代码规范

Go-编码规范(注释,变量名等基本规则)

Go-代码安全指南(腾讯)

变量和常量

Go-变量与常量详解

数据类型

基本数据类型

数字和布尔类型(值类型)

Go-数字与布尔类型详解

字符和字符串(值类型)

Go-字符和字符串类型详解

类型转换

Go-基本数据类型转换详解

派生类型

数组array(值类型)

Go-数组类型详解

切片slice(引用类型)

Go-切片类型详解(遍历、内存、追加、插入、删除等)

映射map(引用类型)

Go-映射类型详解(遍历、增删改查、内存等)

指针pointer(引用类型)

Go-指针类型详解(空指针、指针的指针、函数形参指针等)

运算符

Go-运算符总结(算术、关系、逻辑、赋值、位运算符等)

流程控制

分支和循环

Go-分支和循环总结(if、else、switch、for、range、continue、break等)

函数(引用类型)

Go-函数详解(参数、返回值、init函数、匿名函数、defer)

Go-关键字defer、panic、recover详解

面向对象编程

结构体struct(值类型)

Go-结构体类型详解(声明、初始化、结构体指针、方法、序列化等)

接口interface(引用类型)

Go-接口类型详解(定义、实现、接口继承比较等)

类型断言

Go-动态类型与类型断言详解(含type-switch及全部代码)

面向对象特性

Go-面向对象编程详解(封装、继承、多态等)

错误和异常

Go-错误、异常处理详解

包

Go-包管理(管理工具对比及go mod的使用)

go命令

Go-常用命令go的使用(build、env、run、fmt等)

数据结构和算法

链表

单链表

Go-如何优雅的实现单链表?(含全部代码)

双链表

栈和队列

查找

排序

sort

提高

函数式编程

生成器与迭代器

标准库

输入输出

fmt、bufio、os

Go-输入输出总结及oj的输入输出

操作系统相关

os(文件操作)、bufio、ioutil

Go-文件目录操作分类详解(创建、打开、关闭、读取、写入、判断等)

runtime

syscall

path

时间和日期

time

高并发

Go-并发编程基础(goroutine、channel、select等)

Go-并发模式1(Basic Examples)

Go-并发模式2(Patterns)

反射

测试

testing

加解密相关

cypto

对称加密

Go-Des和3Des算法详解与代码

Go-AES算法详解与代码

非对称加密

Go-RSA加密解密详解与代码

Go-数字签名详解与Rsa数字签名代码

哈希算法

消息认证

数字签名

证书

pki

网络编程

日志

log、logrus

设计模式

创建型

设计模式-工厂方法模式(Go实现)

设计模式-简单工厂模式(Go实现)

未完待续...慢慢更...

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号