GoLang之接口interface_golang interface_GoGo在努力的博客-CSDN博客


本站和网页 https://blog.csdn.net/weixin_52690231/article/details/123250446 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

GoLang之接口interface_golang interface_GoGo在努力的博客-CSDN博客
GoLang之接口interface
GoGo在努力
已于 2022-03-07 11:42:32 修改
5879
收藏
分类专栏:
GoLang
文章标签:
golang
学习
开发语言
于 2022-03-03 14:16:50 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52690231/article/details/123250446
版权
GoLang
专栏收录该内容
87 篇文章
23 订阅
订阅专栏
文章目录
接口interface1.接口介绍2.接口定义2.1定义要求2.2接口可以嵌入到其他接口里但必须得匿名2.2.1接口里可以含一个接口时2.2.2接口里可以含多个接口时
2.3接口没有数据字段2.4接口可以嵌入到结构体struct里2.5空接口可以作为任何类型数据的容器2.6接口命名习惯以 er 结尾2.7实现接口的所有方法即可实现接口2.7.1没有嵌套其他接口时2.7.1嵌套其他接口时正确实现2.7.1嵌套其他接口时错误实现
2.8接口是一个或多个方法签名的集合2.9一个类型可以实现多个接口2.9.1接口内方法不一样时2.9.2接口内方法一样时
2.10接口同样支持匿名方法2.11只有当接口存储的类型和对象都为nil时接口才等于nil2.12接口类型的变量可使用其实例的方法2.13接口类型的变量不可以使用其实例的字段2.14值接收者实现接口2.15指针接收者实现接口2.16多个类型实同一接口2.17结构体中方法+结构体中所嵌套的结构体的方法来实现接口
3.使用接口的原因4.接口的方法错误定义5.空接口5.1空结构体占用16字节5.2类型断言5.1定义5.2v,ok=x.(Y)应用5.3type switch 语句介绍5.4结合switch语句
接口interface
1.接口介绍
在Go语言中接口(interface)是一种类型,一种抽象的类型; interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为(方法); 为了保护你的Go语言职业生涯,请牢记接口(interface)是一种类型;
2.接口定义
2.1定义要求
2.2接口可以嵌入到其他接口里但必须得匿名
2.2.1接口里可以含一个接口时
type Phone interface {
demo//不会报错
type demo interface {
type Phone interface {
aa demo//会编译报错
type demo interface {
2.2.2接口里可以含多个接口时
// Sayer 接口
type Sayer interface {
say()
// Mover 接口
type Mover interface {
move()
// 接口嵌套
type animal interface {
Sayer
Mover
type cat struct {
name string
func (c cat) say() {
fmt.Println("喵喵喵")
func (c cat) move() {
fmt.Println("猫会动")
func main() {
var x animal
x = cat{name: "花花"}
x.move()
x.say()
2.3接口没有数据字段
接口只有方法声明,没有实现,没有数据字段
2.4接口可以嵌入到结构体struct里
2.5空接口可以作为任何类型数据的容器
2.6接口命名习惯以 er 结尾
2.7实现接口的所有方法即可实现接口
实现接口条件: 接口被实现的条件一:接口的方法与实现接口的类型方法格式一致 接口被实现的条件二:接口中所有方法均被实现 任何类型的方法集中只要拥有该接口’对应的全部方法’签名就表示它 “实现” 了该接口,无须在该类型上显式声明实现了哪个接口,这称为Structural Typing; 所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值; 当然该类型还可以有其他方法
2.7.1没有嵌套其他接口时
// Sayer 接口
type Sayer interface {
say()
type dog struct{}
type cat struct{}
// dog实现了Sayer接口
func (d dog) say() {
fmt.Println("汪汪汪")
// cat实现了Sayer接口
func (c cat) say() {
fmt.Println("喵喵喵")
2.7.1嵌套其他接口时正确实现
type Sayer interface {
Lister
say()
type Lister interface {
lis()
type cat struct{}
// dog实现了Sayer接口
func (d cat) say() {
fmt.Println("汪汪汪")
// cat实现了Sayer接口
func (c cat) lis() {
fmt.Println("喵喵喵")
func main() {
var x Sayer // 声明一个Sayer类型的变量x
a := cat{} // 实例化一个cat
x = a // 会报错,原因缺少say方法
x.say() // 汪汪汪
x.lis()
2.7.1嵌套其他接口时错误实现
type Sayer interface {
Lister
say()
type Lister interface {
lis()
type dog struct{}
type cat struct{}
// dog实现了Sayer接口
func (d dog) say() {
fmt.Println("汪汪汪")
// cat实现了Sayer接口
func (c cat) lis() {
fmt.Println("喵喵喵")
func main() {
var x Sayer // 声明一个Sayer类型的变量x
a := cat{} // 实例化一个cat
b := dog{} // 实例化一个dog
x = a // 会报错,原因缺少say方法
x = b // 会报错,原因缺少lis方法
x.say() // 汪汪汪
2.8接口是一个或多个方法签名的集合
2.9一个类型可以实现多个接口
2.9.1接口内方法不一样时
// Sayer 接口
type Sayer interface {
say()
// Mover 接口
type Mover interface {
move()
type dog struct {
name string
// 实现Sayer接口
func (d dog) say() {
fmt.Printf("%s会叫汪汪汪\n", d.name)
// 实现Mover接口
func (d dog) move() {
fmt.Printf("%s会动\n", d.name)
func main() {
var x Sayer
var y Mover
var a = dog{name: "旺财"}
x = a
y = a
x.say() //输出:旺财会叫汪汪汪
y.move() //输出:旺财会动
2.9.2接口内方法一样时
// Sayer 接口
type Sayer interface {
say()
// Mover 接口
type Mover interface {
say()
type dog struct {
name string
// 实现Sayer接口
func (d dog) say() {
fmt.Printf("%s会叫汪汪汪\n", d.name)
func main() {
var x Sayer
var y Mover
var a = dog{name: "旺财"}
x = a
y = a
x.say() //输出:旺财会叫汪汪汪
y.say()//输出:旺财会叫汪汪汪
2.10接口同样支持匿名方法
type Phone interface {
func() string //匿名时候需要加func
say() string //不匿名时候不用加func
2.11只有当接口存储的类型和对象都为nil时接口才等于nil
2.12接口类型的变量可使用其实例的方法
接口类型的变量可使用其实例的方法 ,但是不可以使用其实例的字段
// Sayer 接口
type Sayer interface {
say()
type dog struct {
a int
type cat struct{}
// dog实现了Sayer接口
func (d dog) say() {
fmt.Println("汪汪汪")
// cat实现了Sayer接口
func (c cat) say() {
fmt.Println("喵喵喵")
func main() {
var x Sayer // 声明一个Sayer类型的变量x
a := cat{} // 实例化一个cat
b := dog{} // 实例化一个dog
x = a // 可以把cat实例直接赋值给x
x.say() // 喵喵喵
x = b // 可以把dog实例直接赋值给x
x.say() // 汪汪汪
2.13接口类型的变量不可以使用其实例的字段
// Sayer 接口
type Sayer interface {
say()
type dog struct {
a int
// dog实现了Sayer接口
func (d dog) say() {
fmt.Println("汪汪汪")
func main() {
var x Sayer
b := dog{
a :4,
x = b
x.say()
fmt.Println(x.a) //会编译出错
2.14值接收者实现接口
从下面的代码中我们可以发现,使用值接收者实现接口之后,不管是dog结构体还是结构体指针dog类型的变量都可以赋值给该接口变量。因为Go语言中有对指针类型变量求值的语法糖,dog指针fugui内部会自动求值fugui
type Mover interface {
move()
type dog struct{}
func (d dog) move() {
fmt.Println("狗会动")
func main() {
var x Mover
var wangcai = dog{} // 旺财是dog类型
x = wangcai // x可以接收dog类型
var fugui = &dog{} // 富贵是*dog类型
x = fugui // x可以接收*dog类型
x.move()
2.15指针接收者实现接口
此时实现Mover接口的是dog类型,所以不能给x传入dog类型的wangcai,此时x只能存储dog类型的值
type Mover interface {
move()
type dog struct{}
func (d *dog) move() {
fmt.Println("狗会动")
func main() {
var x Mover
var wangcai = dog{} // 旺财是dog类型
x = wangcai // 这一行会会议报错
var fugui = &dog{} // 富贵是*dog类型
x = fugui // x可以接收*dog类型
x.move()
2.16多个类型实同一接口
// Mover 接口
type Mover interface {
move()
type dog struct {
name string
type car struct {
brand string
// dog类型实现Mover接口
func (d dog) move() {
fmt.Printf("%s会跑\n", d.name)
// car类型实现Mover接口
func (c car) move() {
fmt.Printf("%s速度70迈\n", c.brand)
func main() {
var x Mover
var a = dog{name: "旺财"}
var b = car{brand: "保时捷"}
x = a
x.move() //输出:旺财会跑
x = b
x.move() //输出:保时捷速度70迈
2.17结构体中方法+结构体中所嵌套的结构体的方法来实现接口
接口的方法可以通过在类型中嵌入其他类型或者结构体来实现
// WashingMachine 洗衣机
type WashingMachine interface {
wash()
dry()
// 甩干器
type dryer struct{}
// 实现WashingMachine接口的dry()方法
func (d dryer) dry() {
fmt.Println("甩一甩")
// 海尔洗衣机
type haier struct {
dryer //嵌入甩干器
// 实现WashingMachine接口的wash()方法
func (h haier) wash() {
fmt.Println("洗刷刷")
func main() {
var x WashingMachine
var a haier
x = a
x.dry() //输出:甩一甩
3.使用接口的原因
上面的代码中定义了猫和狗,然后它们都会叫,你会发现main函数中明显有重复的代码,如果我们后续再加上猪、青蛙等动物的话,我们的代码还会一直重复下去。那我们能不能把它们当成“能叫的动物”来处理呢? 像类似的例子在我们编程过程中会经常遇到: 比如一个网上商城可能使用支付宝、微信、银联等方式去在线支付,我们能不能把它们当成“支付方式”来处理呢? 比如三角形,四边形,圆形都能计算周长和面积,我们能不能把它们当成“图形”来处理呢? 比如销售、行政、程序员都能计算月薪,我们能不能把他们当成“员工”来处理呢? Go语言中为了解决类似上面的问题,就设计了接口这个概念。接口区别于我们之前所有的具体类型,接口是一种抽象的类型。当你看到一个接口类型的值时,你不知道它是什么,唯一知道的是通过它的方法能做什么
type Cat struct{}
func (c Cat) Say() string { return "喵喵喵" }
type Dog struct{}
func (d Dog) Say() string { return "汪汪汪" }
func main() {
c := Cat{}
fmt.Println("猫:", c.Say())
d := Dog{}
fmt.Println("狗:", d.Say())
4.接口的方法错误定义
package main
import (
"fmt"
type Phone interface {
call()
//会编译报错
func (i Phone) call() {
fmt.Println("q23erg")
func main() {
5.空接口
5.1空结构体占用16字节
type demo interface {
func main() {
var a demo
fmt.Println(unsafe.Sizeof(a)) //输出16
var b interface{}
fmt.Println(unsafe.Sizeof(b)) //输出16
var c complex64
fmt.Println(unsafe.Sizeof(c)) //输出8
5.2类型断言
5.1定义
5.2v,ok=x.(Y)应用
func main() {
var x interface{}
x = "pprof.cn"
v, ok := x.(string)
if ok {
fmt.Println(v)
} else {
fmt.Println("类型断言失败")
//输出:pprof.cn
func main() {
var x interface{}
x = "pprof.cn"
v, ok := x.(bool)
if ok {
fmt.Println(v)
} else {
fmt.Println("类型断言失败")
//输出:类型断言失败
5.3type switch 语句介绍
5.4结合switch语句
func justifyType(x interface{}) {
switch v := x.(type) {
case string:
fmt.Printf("x is a string,value is %v\n", v)
case int:
fmt.Printf("x is a int is %v\n", v)
case bool:
fmt.Printf("x is a bool is %v\n", v)
default:
fmt.Println("unsupport type!")
func main() {
var x interface{}
x = "pprof.cn"
justifyType(x) //输出:x is a string,value is pprof.cn
GoGo在努力
关注
关注
点赞
收藏
觉得还不错?
一键收藏
打赏
知道了
评论
GoLang之接口interface
接口interface学习
复制链接
扫一扫
专栏目录
Golang 接口(interface)
canduecho的专栏
05-19
777
然后,我们创建了一个类型为 `MyInterface` 的变量 `myVar`,并将它设置为 `MyStruct` 的实例。由于 `MyStruct` 实现了 `MyInterface` 中定义的所有方法,因此它被认为是实现了 `MyInterface` 接口的类型,可以被赋值给 `MyInterface` 类型的变量。上面的代码定义了一个名为 `MyInterface` 的接口,它包含两个方法 `Method1` 和 `Method2`,一个返回 `int` 类型,另一个返回 `string` 类型。
sql_datastore:sql数据库的ipfs数据存储接口的实验性Golang实现
02-02
sql_datastore
-导入“ github.com/datatogether/sql_datastore”
sql_datastore是sql数据库的ipfs数据存储接口的实验性实现。 这是一项正在进行的工作,它源于某种特殊的用例,即需要能够将数据存储在最低限度的分母中,并将数据存储在多个不同的位置。
目标不是通过数据存储接口操作的完全表达的sql数据库,这是不可能的,甚至不是所希望的。 相反,该程序包专注于执行键值数据存储所要执行的各种操作,要求实现者提供一组标准的查询和参数,以将所有内容粘合在一起。 只要数据存储区接口的表达能力不足,总是可以退回到标准SQL工作。
sql_datastore通过“模型”的概念使数据存储接口的键值方向与SQL数据库的表/关系方向一致。 模型是一个不幸的名字,因为它暗示这个包是一个ORM,这不是设计目标。
Annnnnnnnyway,此方法的重要模式是:
1. The Model interface defines how to get stuff into and out of SQL
2. All Models that wil
参与评论
您还未登录,请先
登录
后发表或查看评论
Golang中的interface(接口)详解与最佳实践
路多辛的所思所想
03-19
118
接口的实现是隐式的,只要一个类型实现了一个接口定义的所有方法,就被视为实现了该接口。类型可以实现多个接口,也可以空实现一个接口。接口只定义一组方法,不做具体的功能实现,实现接口的类型必须实现所有这些方法。实现接口的类型可以是任何类型,包括结构体、基本数据类型、数组、切片、映射或函数等,只要实现了接口的所有方法,那么它就实现了该接口。上面的示例代码定义了一个包含两个方法的接口,一个没有参数没有返回值,另一个没有参数但有返回值。接口可以嵌套在其他接口中,也可以通过嵌套其他接口来实现接口的组合。
golang:如何在proto3中用上golang对应的interface{}类型
OceanStar的博客
05-12
214
首先,我希望所有golang中用于http请求响应的结构,都使用proto3来定义。麻烦的是,有的情况下某个字段的类型可能是动态的,对应的JSON类型可能是number/string/boolean/null中的其中一种。使用protoc生成代码后,发现这玩意儿完全没办法做json的encode/decode。理想的办法是让生成golang代码中的 user_input 成为 interface{} 类型。但如何才能让proto3生成golang的interface类型呢?
实例学习Golang–接口(一、接口的实现)
01-08
在Go语言中接口(interface)是一种类型,一种抽象的类型。
每个接口类型由数个方法组成。接口的形式代码如下:
type 接口类型名 interface{
方法名1( 参数列表1 ) 返回值列表1
方法名2( 参数列表2 ) 返回值列表2

接口类型名:使用 type 将接口定义为自定义的类型名。
Go语言的接口在命名时,一般会在单词后面添加 er,
如有写操作的接口叫 Writer,
有字符串功能的接口叫 Stringer,
有关闭功能的接口叫 Closer 等。
方法名:当方法名首字母是大写时,且这个接口类型名首字母也是大写时,
这个方法可以被接口所在
基于非空接口和代码生成的Go更好的ORM。-Golang开发
05-26
改革Go和数据库/ sql的更好的ORM。
与interface {},类型系统回避和运行时反射相对,它使用非空接口,代码生成(生成)和初始化时反射。
它为Go和数据库/ sql改革了一个更好的ORM。
与interface {},类型系统回避和运行时反射相对,它使用非空接口,代码生成(生成)和初始化时反射。
它将保持简单。
支持SQL方言:RDBMS库和驱动程序状态PostgreSQL github.com/lib/pq(postgres)稳定。
已测试所有受支持的版本。
github.com/jackc/pgx/stdlib(pgx)稳定。
已测试所有受支持的版本。
MySQL github.com/g
Golang interface 接口详细原理和使用技巧
后端系统和架构
11-29
2739
Golang interface 接口详细原理和使用技巧 审核中
Go语言之interface详解
yuqiang870的博客
05-13
1万+
go语言interface详解,interface的使用场景,实现多态示例,
Golang——接口interface使用
llslinliansheng的博客
08-28
928
golang接口interface简单使用记录
go语言学习日记【三十三】golang中interface详解
没枕头我咋睡觉
11-16
771
Go 语言里面设计最精妙的应该算 interface,它让面向对象,内容组织实现非常的方便,
当我们认真了解interface后,就会被 interface 的巧妙设计所折服。
Golang interface你想了解的这里都有!
王佳宇
06-13
5307
Golang interface
在了解类型断言之前我们需要新了解一下interface,所以interface算是下一个博客内容的铺垫。
什么是interface,它都有什么用处?
1.interface type
就是一组方法签名的集合。我们使用一个接口来识别一个对象能够进行的操作。这也是我们最常用的方式,不管是在golang这门语言还是其他OOP类型的语言,碰到一个interfac...
Moq是Go生成的接口模拟工具-Golang开发
05-26
Moq是从任何接口生成结构的工具。
该结构可以在测试代码中用作接口的模拟。
用于go生成的接口模拟工具。
什么是起订量?
Moq是从任何接口生成结构的工具。
该结构可以在测试代码中用作接口的模拟。
上图:Moq在右侧生成代码。
您可以在Meet Moq博客文章中阅读更多内容。
安装要开始使用Moq,只需运行go get:$ go get github.com/matryer/moq用法moq [flags] source-dir interface [interface2 [interface3 [...]]] -fmt string go pretty-printer:gofmt ,goimports或noop(默认
初步解读Golang中的接口相关编写方法
12-31
概述
如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。
Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么它就可以在这里使用。
接口的定义和使用
比如
代码如下:
type I interface{
Get() int
Put(int)
这段话就定义了一个接口,它包含两个函数Get和Put
好了,我的一个接口实现了这个接口:
代码如下:
type S
golang基础之Interface接口的使用
09-20
主要介绍了golang基础之Interface接口的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
golang中interface接口的深度解析
09-21
什么是interface,简单的说,interface是一组method的组合,下面这篇文章主要给大家深度解析了关于golang中的interface接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...
实例学习Golang–接口(三、error处理)
01-20
error 接口有一个签名为 Error() string 的方法,...// The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type
实例学习Golang–接口(二、空接口和类型断言)
01-07
空接口 空接口的内部实现保存了对象的类型和指针。 使用空接口保存一个数据的过程会比直接用数据对应类型的变量保存稍慢。 因此在开发中,应在需要的地方使用空接口,而不是在所有地方使用空接口。 package main ...
Go语言中interface{}所属类型判断
热门推荐
shenyunfei1990的博客
12-09
2万+
interface类型定义了一组方法,如果某个对象实现了某个接口的所有方法,则此对象就实现了此接口。空interface(interface{})不包含任何的method,正因为如此,所有的类型都实现了空interface。
我们知道interface的变量里面可以存储任意类型的数值(该类型实现了interface)。那么我们怎么反向知道这个变量里面实际保存了的是哪个类型的对象呢?目前常用的有两...
Golang中的Interface(接口)
qq_42533216的博客
11-24
1038
Golang中的Interface(接口)
EriolSoong·2020-03-27 01:32:55· 4667 次点击 ·预计阅读时间 9 分钟·36分钟之前开始浏览
这是一个创建于2020-03-27 01:32:55的文章,其中的信息可能已经有所发展或是发生改变。
Go语言中的interface没有强制要求实现方法,但是interface是go中非常强大的工具之一。任一类型都可以实现interface中的方法,interface中的值可以代表是各种类型的值,这就是G...
golang 泛型接口
最新发布
07-16
### 回答1:
在Golang中,泛型接口是一种接口类型,可以用于处理不同类型的数据。泛型接口在编程中非常有用,因为它允许我们编写可重用、灵活的代码,而无需针对特定类型进行硬编码。
在Golang中,泛型接口可以通过使用空接口(`interface{}`)来实现。空接口是一个没有任何方法的接口,可以接受任何类型的值。通过使用空接口,可以实现泛型的功能,使得接口可以接收任何类型的数据。
使用泛型接口,我们可以在不改变接口定义的情况下,接受不同类型的参数。例如,我们可以定义一个泛型接口`Container`,用于表示一个可以容纳不同类型元素的容器。这个接口可以定义添加元素、删除元素以及获取元素等方法。
使用泛型接口的好处是可以编写灵活的代码,尽可能减少重复代码的编写。由于泛型接口可以处理多种类型的数据,我们可以将相同的逻辑应用于不同的数据类型,实现代码的重用。
然而,目前Golang没有原生支持泛型接口的功能,因此在实现泛型接口时可能需要一些额外的代码处理。一种常见的做法是使用类型断言来判断接口的实际类型,然后进行相应的操作。
总而言之,虽然Golang没有内置的泛型功能,但通过使用空接口和类型断言,我们可以实现泛型接口从而处理不同类型的数据,提高代码的重用性和灵活性。
### 回答2:
Go语言是一种静态类型的编程语言,其最近的版本Go 1.18中引入了泛型接口的概念。泛型指的是在编写代码时不指定具体类型,而是允许使用者在使用时根据自己的需求来指定具体的类型。
在传统的面向对象编程中,常用的接口表示方式是通过接口类型断言来判断对象是否实现了某个接口。但是这种方式在处理不同类型的数据时需要进行类型转换,不够灵活且有一定的性能损耗。
而泛型接口则可以在接口定义时使用类型参数,通过类型参数来指定接口的具体类型。这样一来,在使用时就可以直接将对应类型的数据传入接口中,无需进行类型转换。
泛型接口的引入为Go语言提供了更加灵活和高效的编程方式。通过泛型接口,我们可以编写更加通用和复用的代码。它还能帮助我们更好地约束函数和数据类型之间的关系,提高代码的健壮性和可读性。
不过需要注意的是,泛型接口的引入也会带来一定的复杂性。在使用泛型接口时,我们需要仔细考虑类型参数的合理性和边界条件,并且需要充分测试以确保代码的正确性。
总之,引入泛型接口是Go语言进一步发展的一大步。它提供了更多的编程方式,并且可以在一定程度上简化代码和提高效率。希望未来随着泛型接口的进一步成熟和普及,我们可以看到更多高质量、灵活和通用的Go代码。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
GoGo在努力
CSDN认证博客专家
CSDN认证企业博客
码龄3年
河南师范大学
580
原创
968
周排名
22万+
总排名
59万+
访问
等级
6355
积分
4万+
粉丝
294
获赞
62
评论
1135
收藏
私信
关注
热门文章
使用Cookie登录网页
18652
GoLang之读取文件10种的方法
15249
Redis之key和value可以存储的最大值
9735
计算机网络之TCP三次握手
7795
GoLang之go test测试
6160
分类专栏
GoLang底层
216篇
Docker
6篇
计算机网络
51篇
GoLang
87篇
Linux
7篇
Casbin
11篇
Gin
33篇
Redis
37篇
Gorm
15篇
Git
3篇
GoLang设计模式
1篇
前端
2篇
Kfaka
1篇
MySql
91篇
Java
1篇
操作系统
13篇
最新评论
MySQL之什么是最左匹配原则
码哈哈_:
说的很好,言简意赅,通俗易懂,我这个小白也能理解
GoLang之如何比较两个map相等(11)
葫芦小金刚_:
[code=plain]
package main
import "fmt"
func compare(map1 map[string]int, map2 map[string]int) bool {
if len(map1) != len(map2) {
return false
for key , val := range map1{
if value, ok := map2[key]; ok != true || val != value {
return false
return true
func main() {
map1 := map[string]int{
"one":1,
"two":2,
map2 := map[string]int{
"one":1,
"two":2,
"three":3,
res := compare(map1, map2)
fmt.Println(res)
[/code]
Java中char类型之间的运算及字符与ASCII之间的转换
杨思默:
看到博主的博客,如果必须做点什么,那就是点赞关注+评论
Redis之key和value可以存储的最大值
liquorand:
数据库层怎么去查看这个值的大小呢
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Docker之docker run、docker exec、数据卷、Dockerfile
GoLang之ACM控制台输入输出
GoLang之使用sync.Cond
2022年582篇
目录
目录
分类专栏
GoLang底层
216篇
Docker
6篇
计算机网络
51篇
GoLang
87篇
Linux
7篇
Casbin
11篇
Gin
33篇
Redis
37篇
Gorm
15篇
Git
3篇
GoLang设计模式
1篇
前端
2篇
Kfaka
1篇
MySql
91篇
Java
1篇
操作系统
13篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
GoGo在努力
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值