# golang-all **Repository Path**: oneqhw/golang-all ## Basic Information - **Project Name**: golang-all - **Description**: golang学习,练手 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-04 - **Last Updated**: 2022-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##学习大纲 #####Go语言介绍 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go语言几乎是集百家之长。例如:Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。 https://www.cnblogs.com/qcloud1001/p/9199246.html #####Go语言优势 1.云计算时代的C语言 2.可直接编译成机器码,部署简单 3.是编译型,但是开发效率可以比得上解释型语言 4.天生支持并发,内置垃圾回收器 5.丰富的第三方库 #### 一基本类型、流程控制 golang以包作为管理单位 每个文件必须声明包 一个文件夹中只能由一个main函数 go build xx.go 编译成可以执行文件 1.常量和变量 程序运行期间不能改变的量 const, const可以自动推导类型 iota常量自动生成器,每隔一行,自动累加1,用于给常量赋值 2.基本数据类型 变量声明同时初始化 var b int = 10 3.fmt包的格式化输出输入 fmt.Println fmt.Printf %d %c %s %T %v 4.类型转换和别名 匿名变量 _ 5.运算符 6.流程控制(选择,循环) #### 二函数、工程管理 1.自定义函数 2.递归函数 3.函数类型 // 定义一个函数类型 type Funct func(int, int) int func Add(a int, b int) int { return a + b } 可以用函数类型,指向函数 var funct Funct = Add //指向具体的函数 result := funct(1, 2) fmt.Println("result is ", result) 4.匿名函数与闭包 5.延迟调用defer 6.获取命令行参数 7.作用域 #####8.工程管理 #### 三复合类型 1.指针 2.数组 3.slice 4.map 5.结构体 #### 面向对象编程 1.匿名组合 2.方法 3.组合,接口 #### 异常、文本文件处理 1.error接口,panic,recover 2.字符串处理 3.正则表达式 4.JSON处理 5.文件操作 #### 并发编程 1.概述 2.goroutine func go_worrker(name string) { for i := 0; i < 5; i++ { fmt.Println("我是一个go协程,我的名字是", name) time.Sleep(1 * time.Second) } fmt.Println(name, "执行完毕") } go go_worrker("小黑") 3.channel 4.select #### 网络编程 1.网络概述 2.socket编程 3.案例:并发的聊天室服务器 4.web工作方式 5.http报文 6.http编程 7.案例:网络爬虫