一尘不染

静态成员变量,例如OOP语言

go

我对Go很陌生,然后我搜索了很多关于如何使用静态函数/变量(例如C#)创建静态类的示例。但是,我找不到任何能很好回答的问题。也许这个问题看起来很愚蠢,但是当我不确定或我不完全了解某些内容时,我不喜欢它。

假设我们有以下代码:

public class Program
{
    public static string name = "Program tester.";

    public enum Importance
    {
        None,
        Trivial,
        Regular,
        Important,
        Critical
    };

    public static void tester(Importance value)
    {
        // ... Test against known Importance values.
        if (value == Importance.Trivial)
        {
            Console.WriteLine("Not true");
        }
        else if (value == Importance.Critical)
        {
            Console.WriteLine("True");
        }
    }
}

如果我理解Golang就是一种C语言,那么它是否具有上述行为,例如C / C#语言?我上面的代码可以用C /
C#来实现,还是通过以C语言传递(使用C模块化编程方式)来实现?


阅读 202

收藏
2020-07-02

共1个答案

一尘不染

Go中没有继承,
但是您可以用Golang方式完成所有OOP的工作。

另请参阅:
https :
//github.com/luciotato/golang-notes/blob/master/OOP.md
https://www.goinggo.net/2013/07/object-oriented-
programming-in-go.html

1:C#类中的静态var => Golang包中的全局var
2:C#中的枚举=>具有枚举名称和枚举元素的const类型的新包
3:OOP中的类=>结构类型
4:类方法=>带有接收者的结构方法
5:C#/ Java抽象方法(C ++中的纯虚函数)=>类似于io.Reader的接口方法
6:public =>首字母大写名称
7:private =>首字母小写名称
8:命名空间=>包名称
9:继承=>嵌入式结构和嵌入式接口
10:线程=>转到例程
11:锁=> sync.Mutex

2020-07-02