代码改变世界

随笔分类 -  golang

golang reflect反射

2022-03-26 15:22 by youxin, 129 阅读, 收藏, 编辑
摘要: 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就 阅读全文

golang nil

2022-03-26 14:47 by youxin, 274 阅读, 收藏, 编辑
摘要: Golang 关于 nil 的认识 1. 什么是 nil ? 大家都清楚,当你声明了一个变量 但却还并木优赋值时,golang中会自动给你的变量类型给一个对应的默认零值。这是每种类型对应的零值: bool -> false numbers -> 0 string -> "" pointers -> 阅读全文

vscode golang开发环境

2022-03-26 00:18 by youxin, 161 阅读, 收藏, 编辑
摘要: google开发的go插件 Rich Go language support for Visual Studio Code 这个go插件会自动安装其他插件。 如果自动安装其他插件失败可以手动安装 VsCode Go插件依赖的工具 安装Go插件所依赖的go tools 按ctrl+shift+p 调出 阅读全文

Prometheus安装配置

2022-03-25 23:34 by youxin, 182 阅读, 收藏, 编辑
摘要: Prometheusproˈmiθɪəs/ Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗下的原生云基金会(Cloud 阅读全文

golang数组切片map chan 结构体 初始化

2022-03-24 14:02 by youxin, 1436 阅读, 收藏, 编辑
摘要: Golang当中有三种初始化的方法, var v2 int = 10var v3 = 10v4 := 10 var 变量名 类型 = 表达式 编译器推导类型的格式 在标准格式的基础上,将 int 省略后,编译器会尝试根据等号右边的表达式推导 hp 变量的类型。 var hp = 100 等号右边的部 阅读全文

golang常见错误

2022-03-23 00:44 by youxin, 543 阅读, 收藏, 编辑
摘要: Go 报错:unexpected newline, expecting comma or } 000 答案在多行切片,数组或映射文字中,每行必须以逗号结尾。 func main() { fruit := []string{ "apple", "banana", "cherry", /添加了逗号 } 阅读全文

golang 结构体tag

2022-03-20 15:54 by youxin, 852 阅读, 收藏, 编辑
摘要: struct成员变量标签(Tag)说明 要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到mongodb啊等等。这个时候如果用属性名 阅读全文

golang mysql操作

2022-03-19 23:30 by youxin, 664 阅读, 收藏, 编辑
摘要: golang数据类型和mysql数据类型的对应 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和关闭操作. sql.DB 为我们管理数据 阅读全文

golang orm框架 gorm

2022-03-19 23:05 by youxin, 334 阅读, 收藏, 编辑
摘要: gorm 文档:https://learnku.com/docs/gorm/v2/transactions/9745 gorm执行原生sql 当有复杂sql语句的时候,我们需要执行原生sql语句,这样更加方便 比如下面的这条sql语句 //查询每天条数 type EveryDayNum struct 阅读全文

golang 包 encoding/binary

2022-03-19 22:36 by youxin, 122 阅读, 收藏, 编辑
摘要: 1、golang包中的binary包是什么? 2、binary为我们开发者提供了哪些内容?以及怎么使用? 3、编解码有哪几种方法? 转化成二进制格式与原本数据转字符串相比会更节省空间 一、golang包中的binary包是什么? 此包实现了对数据与byte之间的转换,以及varint的编解码。 二、 阅读全文

golang 类型和类型断言

2022-03-19 22:12 by youxin, 470 阅读, 收藏, 编辑
摘要: 类型断言即判断一个变量是不是某个类型的实例,这个经常用在判断接口的类型,基本的格式: y, ok := x.(type) 上面的语句用于判断变量x是不是type类型,有两种结果: x是type类型的变量,那么返回x的副本赋值给y,ok的值为truex不是type类型的变量,那么返回一个空的stuct 阅读全文

golang timer定时器

2022-03-19 17:55 by youxin, 751 阅读, 收藏, 编辑
摘要: Go语言的定时器实质是单向通道,time.Timer结构体类型中有一个time.Time类型的单向chan,源码(src/time/time.go)如下 type Timer struct { C <-chan Time r runtimeTimer 初始化 Timer 方法为NewTimer pa 阅读全文

golang interface接口

2022-03-19 17:08 by youxin, 141 阅读, 收藏, 编辑
摘要: 如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。 没有继承是否就无法拥有多态行为了呢?答案 阅读全文

golang defer用法

2022-03-19 15:46 by youxin, 408 阅读, 收藏, 编辑
摘要: Defer A defer statement defers the execution of a function until the surrounding function returns. The deferred call's arguments are evaluated immedia 阅读全文

golang 异常错误处理 error panic recover

2022-03-19 15:36 by youxin, 387 阅读, 收藏, 编辑
摘要: Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: type error interface { Error() string } 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用erro 阅读全文

golang sync.WaitGroup 等待组

2022-03-19 14:39 by youxin, 373 阅读, 收藏, 编辑
摘要: Go语言中除了可以使用通道(channel)和互斥锁进行两个并发程序间的同步外,还可以使用等待组进行多个任务的同步,等待组可以保证在并发环境中完成指定数量的任务 在 sync.WaitGroup(等待组)类型中,每个 sync.WaitGroup 值在内部维护着一个计数,此计数的初始默认值为零。 ( 阅读全文

golang goroutines 协程 channel 通道

2022-03-19 14:37 by youxin, 144 阅读, 收藏, 编辑
摘要: goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。 goroutine 语法格式: go 函数名( 参数列表 ) 例如: go f(x, y, z) 开启一个新的 goroutine: f(x, y, z) Go 允许使用 go 语句开启一个新的运行期 阅读全文

golang 并发 vs 并行 (Concurrency Is Not Parallelism)

2022-03-13 15:10 by youxin, 63 阅读, 收藏, 编辑
摘要: Rob pike发表过一个有名的演讲《Concurrency is not parallelism》(https://blog.golang.org/concurrency-is-not-parallelism), 演讲胶片在talks.golang.org中可以找到(https://talks.g 阅读全文

golang function 和method

2022-03-13 11:52 by youxin, 324 阅读, 收藏, 编辑
摘要: go语言作为一种面向对象的语言,并没有提供C++中的“成员函数”这一种说法,而是用method(方法)来表示。 1、method和function的关系: method是特殊的function,定义在某一特定的类型上,通过类型的实例来进行调用,这个实例被叫receiver。(a Go method 阅读全文

golang fmt使用

2022-03-12 21:08 by youxin, 150 阅读, 收藏, 编辑
摘要: fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C,但更简单一些 printf 格式化输出 定义变量示例 type Human struct { Name string } var people = Human{Name:"春生"} 普通占位符 占位符 说 阅读全文