随笔分类 - Golang
摘要:对于Go语言而言, 一提到并发,可能想到它内建的并发支持, 这也是Go语言最吸引人的地方。 Go采用的并发编程思想是CSP(Communicating Sequential Process,通讯顺序进程), CSP有着精确的数学模型, 其思想的核心是同步通讯, 易于理解。CSP是Go语言推荐的并发模
阅读全文
摘要:不要通过共享内存来通信,要通过通信来共享内存 在Go语言中,要传递某个数据给另一个goroutine(协程),可以把这个数据封装成一个对象,然后把这个对象的指针传入某个channel中,另外一个goroutine从这个channel中读出这个指针,并处理其指向的内存对象。Golang从语言层面保证同
阅读全文
posted @ 2021-09-30 17:36
自己有自己的调调、
摘要:并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。 Go语言的并发通过gorout
阅读全文
摘要:变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息。 值信息:程序运行过程中可动态变化的。 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反
阅读全文
摘要:接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就
阅读全文
摘要:在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的. Go语言的包(package) 包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言提供了很多内置包,如fmt、os、io等。 定义包 还可以根据自己的需要创建自己的包。一个包可
阅读全文
摘要:Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义
阅读全文
摘要:区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 1、Go语言中的指针 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,就需要指针变量。 Go语言中的指针不能进行
阅读全文
摘要:1、简介: Go与众不同的特性之一就是函数和方法可返回多个值。这种形式可以改善C中一些笨拙的习惯: 将错误值返回(例如用 `-1` 表示 `EOF`)和修改通过地址传入的实参。 函数是组织好的、可重复使用的、用于执行指定任务的代码块。支持函数、匿名函数和闭包。 2、函数定义 Go语言中定义函数使用f
阅读全文
摘要:1、简介 映射是方便而强大的内建数据结构,它可以关联不同类型的值。其键可以是任何相等性操作符支持的类型, 如整数、浮点数、复数、字符串、指针、接口(只要其动态类型支持相等性判断)、结构以及数组。 切片不能用作映射键,因为它们的相等性还未定义。与切片一样,映射也是引用类型。 若将映射传入函数中,并更改
阅读全文
摘要:1、切片介绍 数组虽然有适用它们的地方,但是数组不够灵活,因此在Go代码中数组使用的并不多。 但是,切片则使用得相当广泛。切片基于数组构建,但是提供更强的功能和便利。 和数组不同的是,切片类型并没有给定固定的长度。 2、切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型
阅读全文
摘要:1、Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法: // 定义一个长度为3元素类型为int类型的数组a var a [3]int 1.1、数组定义: var 数组变量名 [元素数量]T 比如:var
阅读全文
摘要:流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 1、if else(分支结构) 1.1、if条件判断基本写法 Go语言中
阅读全文
摘要:4、Go语言基础之输出方式【知识点补充】 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf,格式“占位符”衍生自 C,但比 C 更简单 1、输出方式的区别 Print、Println 、Printf、Sprintf 、Fprintf都是fmt 包中的公共方法,在需要
阅读全文
摘要:3、Go语言基础之运算符 1、运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 1.1算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。 package m
阅读全文
摘要:2、Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。 基本数据类型 1.1整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8
阅读全文
摘要:1、Go语言基础之变量和常量 1.1标识符与关键字 1.1.1标识符 go语言中是程序员定义的变量,常量,函数名等,由字母或数字下划线组成,并且只能以字母和_开头 例: aa, _, _aa, _11,_a1 1.1.2关键字 预先定义好的有特殊含义的标识符,关键字、保留字都不建议用作变量名, Go
阅读全文
摘要:Go语言搭建开发环境 最新1.14版本,搭建Go语言开发环境。 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 版本的选择 根据个人系统选择最新版本 安装 Windows安装 双击下载好的go
阅读全文

浙公网安备 33010602011771号