问题:在纯面向对象语言Java 、Python等编程语言中有静态方法。于是有人就会问 Golang中是如何编写静态方法的呢?
答案:Golang 不支持静态方法,完全可以使用 独立func 的方式代替。 如果牵强附会的实现静态方法。如下两种解决问题的方法:
- 创建一个名为的独立包,并将该方法定义为包中的全局函数。这样,我需要为几个方法创建一个新包。此外,每当我需要这样的静态方法时,我必须定义新的包。
- 定义的结构体StructA,其中包含方法 MethedA()。另外,定义名为 MyStructA 的
全局公共变量,该变量指向struct StructA 的实例。这样,当我需要这个方法时,我可以调用MyStructA.MethedA()。
如上两种方式都有东施效颦之嫌。
还是按照Golang的一般套路,直接定制 MethedA() 。 纯函数完全可以替代面向对象中的静态方法。