1 Star 0 Fork 0

ixgo/ixUtils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ternary.go 1.36 KB
一键复制 编辑 原始数据 按行查看 历史
lixu 提交于 2025-09-19 17:12 +08:00 . Initial commit
/*
* @Author: lixu lixu@puchigames.com
* @Date: 2025-07-03 16:43:02
* @LastEditors: lixu lixu@puchigames.com
* @LastEditTime: 2025-07-03 16:48:52
* @FilePath: /go-helper/utils/ternary.go
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
package ixUtils
// Ternary 三元运算符函数,条件为 true 返回 a,否则返回 b
func Ternary[T any](cond bool, a, b T) T {
if cond {
return a
}
return b
}
// result := Ternary(a > b, "大于", "小于等于")
//num := Ternary(flag, 1, 0)
// Coalesce 返回第一个非零值,否则返回默认值
// s := Coalesce("", "默认值", "其他") // 返回 "默认值"
func Coalesce[T comparable](values ...T) T {
var zero T
for _, v := range values {
if v != zero {
return v
}
}
return zero
}
// IfErr error 不为 nil 返回 b,否则返回 a
// result := IfErr(err, data, defaultData)
func IfErr[T any](err error, a, b T) T {
if err != nil {
return b
}
return a
}
// Default 如果 v 为零值则返回 def,否则返回 v
func Default[T comparable](v, def T) T {
var zero T
if v == zero {
return def
}
return v
}
// PtrOrVal 指针不为 nil 返回指针指向的值,否则返回默认值
func PtrOrVal[T any](ptr *T, def T) T {
if ptr != nil {
return *ptr
}
return def
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ixgo/utils.git
git@gitee.com:ixgo/utils.git
ixgo
utils
ixUtils
v1.0.3

搜索帮助