网站首页 站内搜索

搜索结果

查询Tags标签: go,共有 2124条记录
  • go测试库之apitest

    前言 使用go语言做开发差不多快一年了,主要用来写后端Web服务,从一开始吐槽他的结构体,比如创建个复杂的JSON格式数据,那是相当的痛苦。还有 err 处理写的巨麻烦。 当然,go 也有爽的地方,创建个线协程简直太简单了。 到后来慢慢接受,觉得效率还行,因为是静态强类型…

    2023/5/6 1:22:03 人评论 次浏览
  • Go坑:time.After可能导致的内存泄露问题分析

    Go 中 time.After 可能导致的内存泄露 一、Time 包中定时器函数go v1.20.4定时函数:NewTicker,NewTimer 和 time.After 介绍 time 包中有 3 个比较常用的定时函数:NewTicker,NewTimer 和 time.After:NewTimer: 表示在一段时间后才执行,默认情况下执行一次。如果想再…

    2023/5/4 1:23:09 人评论 次浏览
  • 为什么 Go for-range 的 value 值地址每次都一样?

    原文链接: 为什么 Go for-range 的 value 值地址每次都一样? 循环语句是一种常用的控制结构,在 Go 语言中,除了 for 关键字以外,还有一个 range 关键字,可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。 但是在使用 for-range 循环迭…

    2023/4/30 18:22:17 人评论 次浏览
  • go-easy-utils 2.0 正式发布,全面支持泛型和any

    介绍 这是一个基于 Go 语言开发的通用数据类型处理工具类,帮助开发者在业务代码实现中处理常见的数据类型和数据操作。可以让您专注于您的业务代码的实现,而免去处理基本数据类型转换和验证的功能。该工具库无侵入式的设计可以让您的业务代码更容易阅读和优雅。 快速开始…

    2023/4/13 18:22:23 人评论 次浏览
  • golang常用库包:log日志记录-uber的Go日志库zap使用详解

    Go 日志记录库:uber-go 的日志操作库 zap 使用 一、简介 zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。go1.20.2 zap v1.24.0zap的特性高性能:zap 对日志输出进行了多项优化以提高它的性能日志分级:有 Debug,Info,Warn,Error,DPanic,Panic,Fata…

    2023/4/11 1:22:04 人评论 次浏览
  • Go 快速入门指南 - make 和 new

    概述 new() 函数为数据类型 T 分配一块内存,初始化为类型 T 的零值,返回类型为指向数据的指针,可以用于所有数据类型。 make() 函数除了为数据类型 T 分配内存外,还可以指定长度和容量,返回类型为数据的初始化结构,只限于 切片, Map, 通道。make 什么时候用 声明并初…

    2022/12/28 4:24:07 人评论 次浏览
  • Go 快速入门指南 - 变长参数和指针参数

    变长参数 在函数的最后一个参数的数据类型之前加上省略号 ... ,表示该参数的数据类型是 变长类型, 调用该函数时可以传递任意数量 ( 0 - N ) 的该类型的参数。 一个函数只能有一个变长参数,且变长参数必须为最后一个参数。 例子 传递一个参数 package mainimport "…

    2022/12/28 4:24:06 人评论 次浏览
  • Go 快速入门指南 - defer 函数

    概述 一个 defer 语句就是一个普通的函数或方法调用。 defer 语句保证了不论是在正常情况下 (return 返回), 还是非正常情况下 (发生错误, 程序终止),函数或方法都能够执行。 主要特性• 一个函数可定义多个 defer 语句• defer 表达式中的变量值在 defer 表达式定义时已…

    2022/12/28 4:24:05 人评论 次浏览
  • Go 快速入门指南 - panic/recover 函数

    panic panic 会终止程序并退出,因此只有在发生严重的错误时才会使用 panic。 例子 主动触发 package mainfunc main() {panic("some error...") }// $ go run main.go // 输出如下 /**panic: some error...goroutine 1 [running]: main.main()/home/codes/Go-…

    2022/12/28 4:24:05 人评论 次浏览
  • Go 快速入门指南 - 结构体

    概述 结构体 是将零个或多个字段 (变量) 组合在一起的复合数据类型,类似于面向对象语言中的 对象。 结构体以及其字段都使用 可见性 规则。 语法规则 type 结构体名称 struct {字段1名称 字段1数据类型字段2名称 字段2数据类型... }例子 空结构体 var s struct{}没有长…

    2022/12/28 4:24:04 人评论 次浏览
  • Go 快速入门指南 - 嵌套结构体

    概述 Go 支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。 例子 为了省略篇幅,本小节只使用 字面量 方式初始化,new() 的初始化方式请参照 结构体 小节。 每个结构体单独初始化,最后组装 package mai…

    2022/12/28 4:24:03 人评论 次浏览
  • Go 快速入门指南 - 函数

    概述 函数 是将一个或者一类问题包装为一个代码块,可以被多次调用,提高代码重用性。 Go 函数中声明、定义、参数、返回值这些基础概念,和其他编程语言中的一致,这里不再赘述。 语法规则 Go 函数支持单个返回值和多个返回值。 # 单个返回值 # 参数可省略 func 函数名称…

    2022/12/28 4:24:02 人评论 次浏览
  • Go 快速入门指南 - init 函数

    概述 init() 函数 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候, init() 函数就会自动执行,一般用来做一些包的初始化操作。 语法规则 init() 函数 没有参数,也没有返回值。 func init() {// do somethi…

    2022/12/28 4:24:02 人评论 次浏览
  • Go 快速入门指南 - 接口和方法

    接口 Go 接口是隐式实现。 对于一个数据类型,无需声明它实现了哪些接口,只需要实现接口必需的方法即可。当然了,存在一个小问题就是: 我们可能无意间实现了某个接口:) ,所以 命名 是多么重要的一件事情。 语法规则 type 接口名称 interface {方法1名称(参数列表 ...) …

    2022/12/28 4:24:01 人评论 次浏览
  • Go 快速入门指南 - 判断是否实现接口

    判断是否实现接口 Go 里面没有 implements 关键字来判断一个结构体 (对象) 是否实现了某个接口, 要实现类似的功能, 需要用到 类型断言。 类型断言 // 判断 v 是否实现了接口 i // 返回值 ok 为 true 表示已实现,ok 为 false 表示未实现 if _, ok := v.(i); ok { // do…

    2022/12/28 4:24:00 人评论 次浏览
扫一扫关注最新编程教程