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
}