Golang :使用功能技巧收集

1. 三目运算符

func SanMu(res bool, left, right interface{}) interface{} {
    if res { return left } else { return right }
}

func main() {
    var a, b int
    a = 10; b = 100
    fmt.Println("Max: ", SanMu(a>b, a, b).(int))

    var c, d float32
    c = 101.123, d = 12.123
    fmt.Println("Max: ", SanMu(c>d, c, d).(float32))
}

2. Try...Catch...

https://blog.csdn.net/halo_hsuh/article/details/107425688

/* 抓取到的错误,catch出来 */
func catchError(catch func(errString string)) {
    if r := recover(); r != nil {
        catch(fmt.Sprint(r))
    }
}
 
func TryCatch(try func(), catch func(errString string)) bool {
    var hasException = true
    
    func() {
        defer catchError(catch)
        try()
        hasException = false
    }()

    return hasException
}

func TryCatchFinally(try func(), catch func(errString string), finally func()) bool {
    var hasException = true
    
    func() {
        defer catchError(catch)
        try()
        hasException = false
    }()
    finally()

    return hasException
}

猜你喜欢

转载自blog.csdn.net/halo_hsuh/article/details/107455350
今日推荐