182 lines
3.7 KiB
Go
182 lines
3.7 KiB
Go
// Package wrapper ...
|
|
//
|
|
// Description : wrapper ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2023-11-28 16:05
|
|
package wrapper
|
|
|
|
var (
|
|
// TernaryOperator 三元运算符操作实例
|
|
TernaryOperator = &ternaryOperator{}
|
|
)
|
|
|
|
// ternaryOperator ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:06 2023/11/28
|
|
type ternaryOperator struct {
|
|
}
|
|
|
|
// CondFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:10 2023/11/28
|
|
type CondFunc func() bool
|
|
|
|
// defaultCondFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:11 2023/11/28
|
|
func defaultCondFunc() bool {
|
|
return false
|
|
}
|
|
|
|
// Int ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:10 2023/11/28
|
|
func (to *ternaryOperator) Int(cond bool, trueVal Int, falseVal Int) Int {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// IntWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:11 2023/11/28
|
|
func (to *ternaryOperator) IntWithFunc(condFunc CondFunc, trueVal Int, falseVal Int) Int {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return to.Int(condFunc(), trueVal, falseVal)
|
|
}
|
|
|
|
// Float ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:10 2023/11/28
|
|
func (to *ternaryOperator) Float(cond bool, trueVal Float, falseVal Float) Float {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// FloatWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:13 2023/11/28
|
|
func (to *ternaryOperator) FloatWithFunc(condFunc CondFunc, trueVal Float, falseVal Float) Float {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return to.Float(condFunc(), trueVal, falseVal)
|
|
}
|
|
|
|
// String ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:15 2023/11/28
|
|
func (to *ternaryOperator) String(cond bool, trueVal String, falseVal String) String {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// StringWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:15 2023/11/28
|
|
func (to *ternaryOperator) StringWithFunc(condFunc CondFunc, trueVal String, falseVal String) String {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return to.String(condFunc(), trueVal, falseVal)
|
|
}
|
|
|
|
// Array ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:22 2023/11/28
|
|
func (to *ternaryOperator) Array(cond bool, trueVal *Array, falseVal *Array) *Array {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// ArrayWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:22 2023/11/28
|
|
func (to *ternaryOperator) ArrayWithFunc(condFunc CondFunc, trueVal *Array, falseVal *Array) *Array {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return to.Array(condFunc(), trueVal, falseVal)
|
|
}
|
|
|
|
// Map ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:25 2023/11/28
|
|
func (to *ternaryOperator) Map(cond bool, trueVal Map, falseVal Map) Map {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// MapWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:24 2023/11/28
|
|
func (to *ternaryOperator) MapWithFunc(condFunc CondFunc, trueVal Map, falseVal Map) Map {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// Any ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:26 2023/11/28
|
|
func (to *ternaryOperator) Any(cond bool, trueVal *AnyType, falseVal *AnyType) *AnyType {
|
|
if cond {
|
|
return trueVal
|
|
}
|
|
return falseVal
|
|
}
|
|
|
|
// AnyWithFunc ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:24 2023/11/28
|
|
func (to *ternaryOperator) AnyWithFunc(condFunc CondFunc, trueVal *AnyType, falseVal *AnyType) *AnyType {
|
|
if nil == condFunc {
|
|
condFunc = defaultCondFunc
|
|
}
|
|
return to.Any(condFunc(), trueVal, falseVal)
|
|
}
|