gookit/goutil v0.7.1 发布:增强工具集与使用优化

44 天前
 jxia

我们很高兴地宣布 gookit/goutil v0.7.1 正式发布!作为 v0.7.0 系列的第一个补丁版本,本次更新带来了 20+ 新功能、关键错误修复以及多项性能优化,进一步提升了开发体验和工具库的实用性。

Github: https://github.com/gookit/goutil


🚀 版本亮点

1. 时间处理能力增强

2. 映射操作工具新增功能

3. 字符串处理增强

4. 文本工具增强


🛠️ 主要功能详解

⏱️ 时间处理增强

// 支持负数和复合时间格式
duration, err := timex.ToDuration("-1.5h") // -1 小时 30 分钟
duration, err := timex.ToDuration("2d3h") // 2 天 3 小时
duration, err := timex.ToDuration("2hour33min") // 2 小时 33 分钟

🗺️ 映射操作升级

// 任意类型到字符串映射的转换
strMap := maputil.AnyToStrMap(someData)

// 多键值获取
value := data.One("key1", "key2", "key3") // 尝试多个键,返回第一个存在的值

// 切片到映射的转换
slice := []string{"a:1", "b:2", "c:3"}
sMap := maputil.SliceToSMap(slice, ":") // {"a": "1", "b": "2", "c": "3"}

📝 字符串处理新功能

// 不区分大小写的包含检查
strutil.IContainsOne("Hello World", []string{"hello", "golang"}) // true

// 快速逗号连接
result := strutil.JoinComma([]string{"a", "b", "c"}) // "a,b,c"

// 变量名验证
isValid := strutil.IsVarName("valid_var123") // true

🧪 文本工具增强

简单的实现类似 php, kotlin, shell 插值变量渲染,表达式解析处理。

// 使用 StrVarRenderer 进行变量渲染
renderer := textutil.NewStrVarRenderer()
result := renderer.Render("Hello ${name}", map[string]string{"name": "World"}) // "Hello World"

🐛 错误修复


🔧 其他重要更新

重构与优化

文档与测试


🔄 升级指南

安装/更新

go get github.com/gookit/goutil/v0.7.1

注意事项

  1. API 变更SMap 已重命名为 StrMap,请更新相关代码
  2. 新功能:建议查看新增函数,可能简化现有代码逻辑
  3. 错误修复:如果之前遇到 TryAnyMap 的转换问题,现已修复

📈 性能优化


🤝 社区与贡献

感谢所有为本次版本做出贡献的开发者!我们欢迎社区反馈和贡献,如果您有任何建议或发现问题,请通过 GitHub Issues 告诉我们。


📚 资源链接

立即升级体验新特性,享受更高效的 Go 开发体验!

1011 次点击
所在节点    Go 编程语言
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1152165

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX