Go 中的 method, interface and channel

结合网上的一些说法,以及自己的真实体会,学过 Python 之后再学 Go,真是感觉无法舒心。有一个非常直接的感受:Go 当然有静态语言的优点:严谨,此外还简洁,同时还有动态语言的优点:灵活省人力

如果与 C 或 Java 相比对的话,Go 的静态或许只体现在需要提前编译上了。

在编程的时候,最重要的工具无疑是数据结构类型系统,基于这两个工具,才可以谈工程算法编程思想。虽然就其本质而言,算法和思想可以脱离具体编程语言而存在,但它们发挥威力的时候必然是以数据结构和类型系统为基础架构起来的。

编程语言虽不能完全左右数据结构和类型系统,但本身的确提供了一套最为精要的数据结构和类型系统。当我们使用一门具体的编程语言时,必须使用这门语言提供的数据结构和类型系统来进一步构建我们需要的更高级的数据结构和类型。当然,对于高手,或许并没有本质区别,但至少会耗费精力吧?更为关键的是,这个世界上,并没有太多高手,大多数人都会处于编程语言本身的禁锢之中,程度不同而已。

所以,越是菜鸟,越应该多学多了解几门各具特色的编程语言,以此强迫自己跳脱某门具体的编程语言本身,慢慢形成自己对编程本身的思考,慢慢沉淀下来的东西才是最可贵,也最有价值的编程知识。

在 Go 这门语言中,最具特色的便是方法,接口和通道

它们非常优雅地实现了编程领域的两个关键问题:

回过头来再看方法,接口和通道,会发现它们其实一点不特殊,却成功而优雅地解决老大难问题。

这么看过去,真是一片清凉呢。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。