IT书架 本次搜索耗时 0.097 秒,为您找到 752 个相关结果.
  • 278.defer关键字使用

    defer关键字使用 答案: defer关键字使用 参考解析 题目来源:快手 答案: defer是Go语言中的延迟执行语句,用来添加函数结束时执行的代码,常用于释放某些已分配的资源、关闭数据库连接、断开socket连接、解锁一个加锁的资源。Go语言机制担保一定会执行defer语句中的代码。Go中的defer析构的是函数。 一、def...
  • 8.基础功能:如何给应用添加版本信息,方便排查问题?

    为什么要给应用添加版本功能? 版本号规范 SemVer 版本规范格式 如何添加版本号? 如何实现 Go 应用版本功能? 给 miniblog 添加版本功能 创建一个 version 包 将版本信息注入到 version 包中 miniblog 主程序添加 --version 选项 添加执行 miniblog --version 时打...
  • 215.go语言中的map和slice相关一些基本操作

    go语言中的map和slice相关一些基本操作 go语言中的map和slice相关一些基本操作 题目来源:奇安信 答案1: slice 使用 package main import "fmt" func main () { //在go语言中没有所谓的动态数组,所以就有了切片 //...
  • 521.Go map的底层实现原理

    Go map的底层实现原理 Go map的底层实现原理 参考解析 Go中的map是一个指针,占用8个字节,指向hmap结构体 源码包中src/runtime/map.go 定义了hmap的数据结构: hmap包含若干个结构为bmap的数组,每个bmap底层都采用链表结构,bmap通常叫其bucket hmap结构体 // A hea...
  • 5.Go 方法值接收者和指针接收者的区别?

    5.Go 方法值接收者和指针接收者的区别? 5.Go 方法值接收者和指针接收者的区别? 如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者; 如果方法的接收者是值类型,无论调用者是对象还是对象指针,修改的都是对象的副本,不影响调用者; package main import "fmt" ...
  • 132.go如何避免panic,造成panic的原因

    go如何避免panic go如何避免panic 题目来源: 映客 答案1: 首先明确panic定义go把真正的异常叫做 panic,是指出现重大错误,比如数组越界之类的编程BUG或者是那些需要人工介入才能修复的问题,比如程序启动时加载资源出错等等。 几个容易出现panic的点: 函数返回值或参数为指针类型,nil, 未初始化结构体,...
  • 451.Go 两个接口之间可以存在什么关系?

    Go 两个接口之间可以存在什么关系? Go 两个接口之间可以存在什么关系? 参考解析 如果两个接口有相同的方法列表,那么他们就是等价的,可以相互赋值。如果接口A的方法列表是接口B的方法列表的自己,那么接口B可以赋值给接口A。接口查询是否成功,要在运行期才能够确定。
  • 142.一个线程打印奇数一个线程打印偶数 交替打印

    一个线程打印奇数一个线程打印偶数 交替打印 一个线程打印奇数一个线程打印偶数 交替打印 题目来源:字节跳动 答案: package main import ( "fmt" "time" ) var num = 100 func goroutine1 ( p chan ...
  • 用户服务的web服务

    1.go日志库zap 2.go的配置文件管理 3.自定义验证器 4.json web token(jwt)详解 5.jwt集成gin 6.浏览器的跨域请求问题 7.图形验证码 8.阿里云发送短信 9.redis的安装
  • 575.go语言中通道传输过程涉及到数据copy吗

    在Go语言中,通过通道(channel)传递数据时,并不会直接进行数据的复制(deep copy)。通道只是传递指向数据的指针或者值的引用。这取决于数据的类型。 如果传递的是值类型(如基础类型如int, float32等),或者是定义了Copy方法的类型(如[]T切片),那么在发送时会创建一个数据的副本。但如果传递的是指针类型,那么在发送时不会复制数据,而...