现在的工作再怎么无聊,也终究是你脚下的路;目标的实现再怎么遥远,也早晚会有胜利的一天。
--井上雄彦 《REAL》

这句话是从《创意不是想出来的》看到的,非常喜欢,与大家共勉,顺便说一下,这本书很不错。灌篮高手是我非常喜欢的一部漫画。有人问过井上雄彦,为什么不设计湘北最后夺冠?井上雄彦回答说,因为青春的梦想往往是不完美的,只要尽最大努力,就无悔青春。

想说的话都被他说了,不多说,上代码技巧,停了好久,复刊。

今天分享的内容,是关于对称性。《实现模式》3.2.4里面提到的是名词的对称和一致,我这里提到一个小技巧体现了Go编程里的某种对称性。

情境:一段程序里有两个无限循环,怎样根据任意循环错误代码退出?

func main() {
finish := make(chan error)
go func() {
    var err1 error
    defer func() {
        finish <- err1
    }()
    err1 = loop1()
}()
go func() {
    var err2 error
    defer func() {
        finish <- err2
    }()
    err2 = loop2()
}()
err = <-finish
return err
}

是否看到了漂亮的对称呢?:)

附上达芬奇的维特鲁威人,漂亮的设计和代码是不是该和他一样呢?

维特鲁威人

顺便说一下,我的微信公众账号--码农小技巧,感兴趣的可以看一下,这边的文章都会同步。