Golang 网络编程笔记

网络编程 标准库里提供的net包,支持基于IP层、TCP/UDP层及更高层面(如HTTP、FTP、SMTP)的网络操作,其中用于IP层的成为RawSocket Socket编程 建立Socket: socket()绑定Socket: bind()监听: listen() 或者 connect()接受连接: accept()接收: receive() 或者 sent()标准库对此过程进...

Read more

Golang 并发编程

并发基础并发主流的实现模型 多进程 :在操作系统层面进行并发的基本模式,同时也是开销最大的模式多线程 : 在大部分操作系统上都属于系统层面的并发模式,使用最多的最有效的一种模式。它比多进程的开销小很多,但是开销依旧比较大,且在高并发模式下,效率会有影响基于回调的非阻塞/异步IO : 通过事件驱动的方式使用异步IO,使服务器持续运转,且尽可能地少用线程,降低开销,在Node.js中得到很好的实...

Read more

Golang 类型系统

类型系统 type system 基础类型,如byte、int、bool、float等复合类型,如数组、结构体、指针等可以指向任意对象的类型(Any类型)值语义和引用语义面向对象,即所有具备面向对象特征(比如成员方法)的类型接口...

Read more

Golang 不定参数&匿名函数与闭包

不定参数语法糖(syntactic sugar)类型…type本质上是一个数组切片,也就是[]type 不定参数类型func myfunc(args ...int) { for _, arg := range args { fmt.Println(arg) } } func main() { myfunc(2, 3, 4) myf...

Read more

Golang 函数

基本组成关键字func、函数名、参数列表、返回值、函数体和返回语句 函数定义package mypath import "errors" func Add(a int, b int) (ret int, err error) { if a < 0 || b < 0 { err = errors.New("Should be non-negative...

Read more

Golang 流程控制

流程控制条件语句 if…else…else iffunc example(x int) int { if x == 0 { return 5 } else { return x } } 条件语句不需要使用括号将条件包含起来();无论语句体内有几条语句,花括号{}都是必须存在的;左花括号{必须与if或者else处于同...

Read more

Golang map

变量声明var myMap map[string] PersonInfo myMap map变量名string key的类型PersonInfo则是值类型 创建myMap = make(map[string] PersonInfo) // 创建了一个键 类型为string、值类型为PersonInfo的mapmyMap = make(map[string] PersonInfo,...

Read more

Golang 数组操作

数组创建mySlice1 := make([]int, 5, 5) mySlice1 = append(mySlice1, 1, 5, 3, 3, 2, 1, 10, 1, 3, 5) 元素遍历for i,j := range mySlice1 { fmt.Println(i,j) } for i := 0; i < len(mySlice1) ; i++{ fm...

Read more

Golang 变量

变量声明布尔类型: bool整型:int8、byte、int16、int、uint、uintptr等 浮点类型:float32、float64复数类型:complex64、complex128字符串:string字符类型:rune错误类型:error复合类型: 指针(pointer) 数组(array) 切片(slice) 字典(map) 通道(chan) 结构体(struc...

Read more