随笔分类 - Go
golang
摘要:channel 什么是channel channel就是一个先进先出的队列,就是一种排队的机制通道,分解它的属性: 排队 阻塞(通道满了就等等着,好比去火车站排队一样,没有人检票了就的在检票口等着) 先进先出 CSP(Communicating Sequential Processes)通信实现数据
阅读全文
摘要:概念回顾 进程/线程 进程是程序在操作系统中的一次执行过程,每次程序执行的时候操作系统都会给这个程序打一个标识:资源、ID,它是一个独立的单位 线程是进程的一个执行实体,是 CPU 调度和分派的基本单位 一个进程可以创建和撤销多个线程,同一个进程中的多个线程之间可以并发执行 并发/并行 拿两个任务来
阅读全文
摘要:编程方式 上面的文章通过func函数,使我们可以重复的使用代码,称之为函数式编程 面向对象编程:通过对象 + 方法 ,让操作基于一个对象,而不只是来回的掉函数(并且可以使用面向对象的其他优点) 面向对象的优点这里不过多的赘述,感兴趣的自己看下 举个最简单的例子: func 吃饭(){} func 睡
阅读全文
摘要:函数 函数是用来解决重复代码的,它把相同功能的代码:组织、封装到一个函数内 通过函数就可以调用,这个代码块 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民” 一等(头等)函数、支持头等函数(First Class Function)的编程语言,可以把函数赋值给变量,也可以把函
阅读全文
摘要:什么是结构体 回顾下slice和map他们都是单类型的 func main() { // 切片或者数组的类型只能存一种 s1 := []int{0, 1, 2, 3, 4, 5} // map也是同样它的这个类型的值也只能是单类型的 m1 := map[string]string{"name": "
阅读全文
摘要:为什么会有map array和slice优点 可以存储相同类型的的数据比如: s1 := []int{1,1,1,1,1,1} 在知道下标的情况下访问数据速度贼快: s2 := []string{"v0", "v1", "v2"} 访问: s2[1] 缺点 如果想判断某个值是否存在或者不知道数据的下
阅读全文
摘要:#聊一聊切片 数组存在的问题 数组长度在定义的时候就已经定义好了,且不可以修改 数组长度属于类型的一部分,所以数组有很多的局限性 package main import ( "fmt" "reflect" ) func main() { a := [3]int{1, 2, 3} fmt.Printl
阅读全文
摘要:数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组长度和数组类型不可修改 数组的声明 数组声明的格式:var 数组变量名 [元素数量]T 先声明在赋值 p
阅读全文
摘要:获取用户输入 有时候程序需要根据用户的选择来执行不同的代码逻辑,这个时候就需要获取用户的输入了 fmt.Scan fmt.Scanln fmt.Scanf fmt.Scan 例子 import "fmt" func main() { fmt.Print("请输入用户名和年龄通过空格区别:") var
阅读全文
摘要:Go语言运算符:算术运算符 、关系运算符、逻辑运算符、 位运算符、赋值运算符
阅读全文
摘要:什么是数据类型 数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并使用这份数据。 package main import "fmt" var ( a int = 16 ) func main() { fmt.Println(a) } 已知:计算机里都是0、1的组合,那为什么需要类型呢
阅读全文
摘要:标识符与关键字 标识符 定义变量时,我们定义了: name、age 这样的名字,它们都是程序员自己起的,能够表达出变量的作用,这叫做标识符(Identifier) 标识符就是程序员自己起的名字,名字也不能随便起,要遵守规范,在Go语言中标识符由 只能以“字母”和“_”开头 由“字母”、“数字”、“_
阅读全文

浙公网安备 33010602011771号