Skip to content

Latest commit

 

History

History
39 lines (20 loc) · 973 Bytes

体会go语言的设计.md

File metadata and controls

39 lines (20 loc) · 973 Bytes

go语言没有的元素:

  • 类、继承、多态、重载

    因为go语言拥有不同的世界观,go主要是面向接口编程;

    在面向对象界,也流行变继承为组合的思维;

    这些面向对象的元素太容易被滥用;

    go语言为组合提供了便捷的支持;

    go语言中怎么模拟类,继承,多态呢?

  • try/catch/finally

    go语言中为何没有try/catch/finally?

    太多错误被当做异常,try/catch容易使得程序太过复杂

    错误:是意料之中的

    go语言中使用defer/panic/recover模式来替代try/catch/finally

  • 泛型

    泛型的作用:1.作为模板类型;2.约束参数类型

    go语言本身自带强类型的slice,map,channel

  • 构造函数/析构函数

    大型项目中很少使用构造函数,多使用公产函数

  • 操作符重载(c++)

  • assert(断言)

需要注意的是:go语言没有以上这些元素概念,不要想着怎么用go语言去模拟它们