golang
已收录文章:13813篇
-
Go函数可返回单个或多个值,类型由函数签名定义。单返回值函数返回一个值,多返回值函数返回多个值,命名返回值函数允许为返回值指定名称,提升代码可读性。487 收藏
-
使用GoModules、Docker、Makefile和.env文件可统一Golang在macOS和Linux的开发环境。1.GoModules确保依赖一致;2.Docker容器化保证运行环境一致;3.Makefile自动化构建和测试;4..env文件管理环境变量;5.选择稳定Go版本并处理CGO编译问题;6.通过CI/CD实现自动化构建与部署。487 收藏
-
使用指针表示可选值是Go语言常见做法,因指针可为nil,能自然表达“值不存在”语义。在结构体中,将字段设为指针类型(如int)可实现可选字段,例如typeUserstruct{Namestring;Ageint},Age为nil时表示未设置。通过取地址&age赋值,可创建可选值,亦可封装Int(vint)int等工具函数简化操作。访问时需先判空,避免panic,如ifuser.Age!=nil{fmt.Println(user.Age)},并可结合默认值处理。在JSON序列化中,nil指针对应null,反487 收藏
-
Go语言中类型转换需显式声明,不同名称的类型即使底层相同也需显式转换。基本类型间如int与float64需显式转换,可能丢失精度;string与[]byte可直接互转;数值转string应使用strconv包。自定义类型如typeMyIntint不等同于int,必须显式转换,且不继承原类型方法。接口转换依赖类型断言val,ok:=iface.(Type)以避免panic,空接口取值需转回具体类型。指针类型间不可直接转换,仅能通过unsafe.Pointer转换相同底层类型的指针,但会降低安全性,应慎用。整487 收藏
-
迭代器模式通过接口定义统一遍历行为,封装集合内部结构,支持多种遍历策略、懒加载和内存高效处理,适用于复杂数据结构或大型数据流场景。487 收藏
-
用Golang写基础爬虫需发送HTTP请求并解析HTML。首先通过net/http库发起GET请求获取网页内容,如http.Get读取响应体;接着使用goquery库解析HTML,类似jQuery语法提取h1标题和p段落文本;最后将数据结构化为JSON输出。注意设置User-Agent、处理超时与编码,遵守robots.txt规则。完整流程包括错误处理、资源释放及数据存储,可扩展并发与反爬应对。487 收藏