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

  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官方中文网-包使用手册

菜鸟教程

C语言网

go语言中文网

golang系列

视频

尚硅谷-go语言核心编程

基础

安装

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

IDE下载的GoLand

变量和常量

Go-变量与常量详解

数据类型

基本数据类型

Go-数字与布尔类型详解

字符和字符串

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

类型转换

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

派生类型

数组array

Go-数组类型详解

切片slice

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

映射Map

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

指针

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

运算符

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

流程控制

分支

循环

函数

面向对象编程

结构体struct

interface

数据结构和算法

链表

队列

查找

排序

sort

提高

标准库

操作系统相关

os(文件操作)

runtime

syscall

path

时间和日期

time

日志

log

加解密相关

cypto

pki

高并发

通道channel

错误

函数式编程

反射

网络编程

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

你可能感兴趣的:(Go,go)