文章分类 -  Golang

摘要:在 Go1.24 中,omitzero 是一个新增的 json处理标签,旨在更灵活地控制结构体字段在序列化时的行为。以下是对其功能、用法及与现有特性的对比分析: 1. omitzero 的核心作用 omitzero 标签用于在 json 序列化时自动忽略字段的零值(如 0、""、false、nil  阅读全文
posted @ 2025-02-18 09:50 Carver-大脸猫 阅读(26) 评论(0) 推荐(0) 编辑
摘要:redigogithub地址 https://github.com/garyburd/redigo安装命令 :go get github.com/garyburd/redigo/redis该仓库地址已经换了,建议使用新的仓库地址哦!安装命令: go get github.com/gomodule/r 阅读全文
posted @ 2024-10-17 16:47 Carver-大脸猫 阅读(49) 评论(0) 推荐(0) 编辑
摘要:解决 Go 模块下载缓慢甚至失败的问题可以通过以下两种方法: 执行命令 go env -w GOPROXY=https://goproxy.cn,direct 这条命令会将 Go 代理设置为国内的代理地址 https://goproxy.cn,并且忽略任何可能存在的代理缓存。 设置环境变量(适用于 阅读全文
posted @ 2024-10-15 15:58 Carver-大脸猫 阅读(1717) 评论(0) 推荐(1) 编辑
摘要:代码案例: package main import ( "fmt" ) // 给管道写入数据 func writeData(iniChan chan int) { for i := 1; i <= 50; i++ { //放入数据 iniChan <- i fmt.Println("writeDat 阅读全文
posted @ 2024-10-11 21:34 Carver-大脸猫 阅读(1) 评论(0) 推荐(0) 编辑
摘要:一:channel的关闭 使用内置函数close可以关闭channel,当channel关闭后,就不能再向channel写数据了,但是仍然可以从该channel读取数据 代码案例: package main import "fmt" func main() { iniChan := make(cha 阅读全文
posted @ 2024-10-11 16:51 Carver-大脸猫 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一:channel的初始化 //语法 var 变量名 chan 类型 变量名 = make(chan 类型,大小) //举例说明 var intChan chan int intChan = make(chan int, 3) 二:向channel中写入(存放)数据 //举例说明 var intCh 阅读全文
posted @ 2024-10-11 15:17 Carver-大脸猫 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一:不同 goroutine 之间如何通讯 全局变量加互斥锁同步【低水平】 package main import ( "fmt" "sync" "time" ) var ( myMap = make(map[int]int, 10) //声明一个全局的互斥锁 lock sync.Mutex //l 阅读全文
posted @ 2024-10-11 13:31 Carver-大脸猫 阅读(15) 评论(0) 推荐(0) 编辑
摘要:代码案例: package main import ( "fmt" "runtime" ) func main() { cpuNum := runtime.NumCPU()//当前系统的cpu个数 fmt.Println("cpuNum=", cpuNum) //可以自己设置使用多个cpu【留下一个 阅读全文
posted @ 2024-10-10 22:24 Carver-大脸猫 阅读(3) 评论(0) 推荐(0) 编辑
摘要:Golang协程的优势: Golang的主线程是一个物理线程,直接作用在cpu上的,是重量级的,非常消耗cpu资源 Golang的协程从主线程开启的,是轻量级的线程,是逻辑态,对资源消耗相对小 Golang的协程机制是重要的特点,可以轻松地开启上万个协程,对于其它语言来说,并发机制是基于线程的,开启 阅读全文
posted @ 2024-10-10 21:46 Carver-大脸猫 阅读(1) 评论(0) 推荐(0) 编辑
摘要:一:协程是轻量级的线程【主线程】 二:协程的特点 有独立的栈空间 共享程序堆空间 调度由用户控制 协程是轻量级的线程 三:goroutine的调度模型 MPG模式 M:操作系统的主线程(物理线程) P:协程执行需要的上下文 G:协程 阅读全文
posted @ 2024-10-10 21:19 Carver-大脸猫 阅读(2) 评论(0) 推荐(0) 编辑
摘要:代码案例: 测试用例文件名格式:XXX_test.go t.Logf方法输出相应的日志 测试单个文件: go test -v app_test.go 测试单个函数 go test -v -test.run TestGetData 阅读全文
posted @ 2024-10-10 19:34 Carver-大脸猫 阅读(1) 评论(0) 推荐(0) 编辑
摘要:代码案例: package main import ( "encoding/json" "fmt" ) type People struct { Name string `json:"name"` //序列化后的字段名字【自定义】 Age int `json:"age"` Address strin 阅读全文
posted @ 2024-10-10 15:18 Carver-大脸猫 阅读(10) 评论(0) 推荐(0) 编辑
摘要:一:严格的输入方式 package main import ( "fmt" "os" ) func main() { fmt.Println("命令行的参数有", len(os.Args)) //遍历 os.Args 切片,就可以得到所有的命令行输入的参数值 for i, v := range os 阅读全文
posted @ 2024-10-10 11:55 Carver-大脸猫 阅读(1) 评论(0) 推荐(0) 编辑
摘要:代码案例: package main import ( "bufio" "fmt" "io" "os" ) type CharCount struct { chCount int //英文个数 NumCount int //数字个数 SpaceCount int //空格个数 OtherCount 阅读全文
posted @ 2024-10-10 11:45 Carver-大脸猫 阅读(20) 评论(0) 推荐(0) 编辑
摘要:代码案例: package main import ( "bufio" "fmt" "io" "os" ) func main() { srcFile := "./test1.txt" dstFile := "./abc.txt" _, err := CopyFile(dstFile, srcFil 阅读全文
posted @ 2024-10-10 11:15 Carver-大脸猫 阅读(42) 评论(0) 推荐(0) 编辑
摘要:golang判断文件或文件夹是否存在的方法,使用os.Stat()函数,返回的错误值进行判断: 如果返回的错误为 nil,说明文件或文件夹存在 如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在 如果返回的错误为其它类型,则不确定是否存在 package ma 阅读全文
posted @ 2024-10-10 10:37 Carver-大脸猫 阅读(137) 评论(0) 推荐(0) 编辑
摘要:存在两个已经存在的文件,将一个文件的内容写入到另外一个文件中 package main import ( "fmt" "io/ioutil" ) func main() { //存在两个已经存在的文件,将一个文件的内容写入到另外一个文件中 file1 := "./a.txt" file2 := ". 阅读全文
posted @ 2024-10-10 10:25 Carver-大脸猫 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一:创建一个新文件,写入5句 "hello world" package main import ( "bufio" "fmt" "os" ) func main() { //1.创建一个新文件 filePath := "test1.txt" file, err := os.OpenFile(fil 阅读全文
posted @ 2024-10-09 20:30 Carver-大脸猫 阅读(2) 评论(0) 推荐(0) 编辑
摘要:一:带缓冲的Reader读文件 package main import ( "bufio" "fmt" "io" "os" ) func main() { //打开文件 file, err := os.Open("./test.txt") if err != nil { fmt.Println("o 阅读全文
posted @ 2024-10-09 20:21 Carver-大脸猫 阅读(120) 评论(0) 推荐(0) 编辑
摘要:由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言,具体如下: var t float32 = 2.4 var x interface{} x = t y = x.(float32) // 成功转成 float32 具体案例1: package main import "fm 阅读全文
posted @ 2024-10-09 18:06 Carver-大脸猫 阅读(3) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题