4 北辰 Let's Go

简单学习网 - 软件工程师

我要认证

Let's Go

等级
TA的排名 1w+

Go语言的新类型声明和类型别名的区别

文章目录简介定义新类型类型别名(定义类型的新名字)参考代码代码简介区分新类型声明和类型别名的不同之处,虽然简单,却也是容易忽视的地方,这里做个简单介绍。定义新类型type关键字用来声明一个新类型:type 类型名称 底层类型新类型和底层类型是不可以互相赋值的,即新类型和底层类型是两种不同的类型。类型别名(定义类型的新名字)type 新名称 = 底层类型这条语句是给底层类型起了个新的名字,他们是等价类型,可以认为是为底层类型定义了个别名。这俩类型定义的变量可以互相赋值。其中rune

2020-09-09 18:18:48

Go语言并发读写大文件样例

文章目录小文件读取按块读取大文件并发读写文件样例小文件读取package mainimport ( "fmt" "io/ioutil" "os")func main() string { f, err := os.Open("file/test") if err != nil { fmt.Println("read file fail", err) return "" } defer f.Close() fd, err := ioutil.ReadAll(f) if

2020-09-08 09:58:38

Go语言字符串拼接:strings.Builder和bytes.Buffer如何选择

文章目录标题字符串拼接性能差异选择标题字符串拼接package mainimport ( "bytes" "fmt" "strings")func main() { var str = []string{"aaa", "bbb", "ccc", "ddd"} fmt.Println(useStrings(str)) fmt.Println(useBytes(str))}func useStrings(input []string) string

2020-09-07 17:04:08

Go语言中使用JWT作为授权令牌

官网JWT官网简介JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。使用场景Authorization (授权) :这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。Information

2020-09-03 09:24:05

Go语言简介

官网地址Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物, 它的中文名叫做囊地鼠,他们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。...

2020-09-02 18:18:50

哪些场景适合使用索引覆盖来优化SQL

全表count查询优化select count(age) from user;使用索引覆盖优化:创建age字段索引列查询回表优化select id,age,name from user where age = 10;使用索引覆盖:建组合索引idx_age_name(age,name)即可分页查询:select id,age,name from user order by age limit因为name字段不是索引,所以在分页查询需要进行回表查询使用索引覆盖:建组合索引idx_age_nam

2020-07-24 15:22:48

RabbitMQ基础概念详细介绍

https://www.jianshu.com/p/e55e971aebd8引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ简介AMQP,即Advanced Mess

2020-07-17 17:41:38

MySql下实现先排序后分组 5.7出现的问题

https://blog.csdn.net/wangxi_xixi/article/details/82981533https://blog.csdn.net/lglaljj123/article/details/79864188

2020-05-18 11:58:46

面试必问:Golang高阶-Golang协程实现原理

https://www.cnblogs.com/nima/p/11751393.html

2020-03-25 18:08:25

MySQL基础知识

1.基础知识decimal能存储比bigint更大的整数;float和double只能做近似计算经常变更的短字符串用char更好更高效。text和blob查询会使用临时表,导致严重的性能开销。 单独查询或者单独垂直分表timestamp y-m-d h:i:s 比datetime空间效率更高。数据库建模 powerdesigner 重要,不要只写一个数据字典mysql的瓶颈是磁盘IO;...

2020-03-24 16:27:45

mysql中的回表查询与索引覆盖

了解一下MySQL中的回表查询与索引覆盖。回表查询要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。InnoDB的聚集索引InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。1.如果表定义了PK(Primary Key,主键),那么...

2020-03-24 15:31:35

Go语言的并发简单总结

Goexit结束当前goroutine,会调用defer, 不会产生panic1.6.扇入扇出 fan in\fan out1.7 通知退出机制通知退出机制是学习使用context库的基础Lable:for{select {case ch<-rand.Int():case <-done:break Lable}}2.并发范式2.1 生成器2.2 管道输入输...

2020-03-20 14:26:31

我的Chrome标签

https://studygolang.com/pkgdochttps://github.com/lpxxn/gomicrorpchttps://learnku.com/go/t/36973https://cloud.tencent.com/developer/section/1140383https://blog.csdn.net/qq_41187256/article/details/...

2020-03-20 13:46:13

Go语言基础漫谈

引导程序整体结构的 8 个关键字package 定义包名import 导入包名const 常量声明var 变量声明func 函数定义defer 延迟执行go 并发语法糖return 函数返回声明复合数据结构的 4 个关键字struct 定义结构类型interface 定义接口类型map 声明或创建 map 类型chan 声明或创建通道类型控制程序结构的 13 个关键字...

2020-03-19 10:50:40

Go语言的接口简介

接口接口可以嵌入另一个接口类型的匿名字段。编译器会自动展开。接口带的是方法声明,带方法名,方法名是接口类型的一部分。接口的命名一般以 er 结尾。单独声明接口变量没有意义,只有被初始化的具体类型才有意义、接口的意义:我们内部的某类型需要返回回去,但是一部分方法和属性不想对外暴露。我们可以声明一个希望暴露的接口返回回去。拿到的返回值就只有接口的方法可以使用。属性字段和没有暴露的方法不可被访...

2020-03-19 10:49:30

Go语言Interface作为struct field,谈谈结构体中的匿名接口

Go语言中通过组合(composite)实现类似继承(extends)和重写(override)的功能,大家可能平时用的比较多的是struct中匿名struct的写法,有没有见过struct中匿名接口(anonymous interface)的写法呢?Interface这个接口直接作为struct中的一个匿名字段,在标准库sort包中就有这种写法:type Interface interfac...

2020-03-19 10:33:38

Go语言测试

*_test.go单元测试函数{PASS/FAIL 测试函数的名字必须以Test开头,可选的后缀名必须以大写字母开头func TestSin(t testing.T) { / … */ }参数t用来报告测试失败和附加的日志信息go test如果没有参数指定包 则采用当前目录对应的包,同go build错误信息一般是:f(x) = y, want z-v 打印每个测试函数的名字和运行...

2020-03-16 11:28:47

GORM常用方法

gorm{ // 获取通用 sql.DB 并使用其方法db.DB()// Pingdb.DB().Ping()// SetMaxIdleCons 设置连接池中的最大闲置连接数。db.DB().SetMaxIdleConns(10)// SetMaxOpenCons 设置数据库的最大连接数量。db.DB().SetMaxOpenConns(100)// SetConnMax...

2020-03-16 10:09:14

Uber的Go语言指南

1.接口实质上在底层用两个字段表示:一个指向某些特定类型信息的指针。您可以将其视为"type"。数据指针。如果存储的数据是指针,则直接存储。如果存储的数据是一个值,则存储指向该值的指针。如果希望接口方法修改基础数据,则必须使用指针传递。2.使用值接收器的方法既可以通过值调用,也可以通过指针调用。值接收器实现的接口,值和指针都可用。指针接收器实现的接口,只能指针可用,值会编译失败。3....

2020-03-16 10:08:07

kafka

https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/下载地址,别下载srcbin/zookeeper-server-start.sh -daemon config/zookeeper.propertiesbin/kafka-server-start.sh -daemon config/server.properties创建topicbin/...

2020-03-13 15:09:31

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。