如何在Golang写课
#python #go #oops

介绍

我看到许多人来自Python背景,与Go挣扎。我遵循的内容,他们编写的代码仅限于编写功能和呼叫它们。他们从不利用设计结构,例如抽象,封装,继承,构图等。我可以理解他们的痛苦,因为我一直在同一条船上。

在今天的帖子中,我将比较我们如何在Python中写课程与如何在旅途中做同样的事情。

什么是组成?

  1. 变量形式的属性
  2. 方法的行为

python中的例子

考虑python中的以下代码,该代码定义了具有名称属性和问候方法的简单人类类:

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print(f"Hello, my name is {self.name}")

p = Person("John")
p.greet()  # prints "Hello, my name is John"

如果您是一名希望学习GO的Python程序员,您会很高兴知道GO具有与“ structs”类似的概念。结构类似于类,因为它们允许您使用自己的字段和方法定义自定义数据类型。

定义结构和属性的结构

要在GO中定义结构,您使用类型关键字,然后使用结构的名称和一组包含字段的卷发括号。这是一个名为“人:
”的简单结构的示例

type Person struct {
    name string
    age  int
}

这定义了一个称为两个字段的人的结构:姓名和年龄,它们分别为字符串和int。

使用接收器功能的方法或行为

您还可以使用func关键字来定义结构上的方法,并使用(p *person)语法将方法连接到结构,其中p是方法和人的接收者是接收者的类型。这是一个称为Sayhello的方法的示例,该方法向控制台打印问候:

func (p *Person) SayHello() {
    fmt.Printf("Hello, my name is %s and I am %d years old\n", p.name, p.age)
}

要创建一个结构的实例,您可以使用新函数或速记语法:=。这是两者的示例:

// Using the new function
p1 := new(Person)
p1.name = "John"
p1.age = 30

// Using the shorthand syntax
p2 := Person{name: "Jane", age: 25}

您还可以定义“构造函数”函数来创建结构的实例。如果您想在创建新实例时执行一些初始化逻辑,这将很有用。以下是人构造的构造函数的示例:

func NewPerson(name string, age int) *Person {
    p := new(Person)
    p.name = name
    p.age = age
    return p
}

然后,您可以使用此构造函数来创建像这样的人结构的新实例:

p := NewPerson("Bob", 35)

我希望本教程能帮助您了解如何在GO中定义和使用python程序员。结构是在GO中定义自定义数据类型的强大而灵活的方法,我鼓励您进一步探索它们。

谢谢您的阅读!