美文网首页
Go语言中的receiver function

Go语言中的receiver function

作者: louyang | 来源:发表于2021-06-21 14:50 被阅读0次

Go语言是不用类和继承的,原因应该是其太复杂了。

在面向对象编程中,用来将数据和函数绑在一起,例如:

Person
+---------------------------------------------+
| Name: String                                |   <- data
| Age: Int                                    |
+---------------------------------------------+
| SayHello()                                  |   <- function
+---------------------------------------------+

在Go语言中,我们也可以实现上述的绑定,但不是类,而是receiver function

首先,我们定义数据结构:

type person struct {
    name string
    age int
}

参考

https://www.bogotobogo.com/GoLang/GoLang_Structs.php
https://appdividend.com/2019/03/23/golang-receiver-function-tutorial-go-function-receivers-example/
https://grisha.org/blog/2016/09/22/golang-receiver-vs-function/

然后,完成数据结构与函数的绑定:

func (p person) SayHello() {  // Function SayHello() can receive person type variable
    log.Print("Hello ", p.name)
}

最后,创造变量并调用receiver function

p := person{"Peter",18}
p.SayHello();

完整代码:

package main

import (
    "log"
)

type person struct {
    name string
    age int
}

func (p person) SayHello() {
    log.Print("Hello ", p.name)
}

func main() {
    p := person{"Peter",18}
    p.SayHello();
}

运行结果:

2021/06/21 09:48:46 Hello Peter

相关文章

  • Go语言中的receiver function

    Go语言是不用类和继承的,原因应该是其太复杂了。 在面向对象编程中,类用来将数据和函数绑在一起,例如: 在Go语言...

  • 实例解析go语言method指针receiver的用处,及非指针

    method指针receiver的用处 go语言中method使用指针作为receiver接受体的用处与使用费指针...

  • TODO:Go语言goroutine和channel使用

    TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语...

  • 什么是Go语言中的interface

    Interface(接口)在Go语言中就是一系列的函数原型(function signature),例如: 每个实...

  • 2020-01-07文献笔记

    序号:001 题目:Probing crustal anisotropy by receiver function...

  • Go语言指针

    Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。 接下来让我们来一步步学习 Go 语...

  • Go基础——function

    函数的声明 在 Go 语言中,函数声明通用语法如下: func:函数的声明以关键词 。 function_name...

  • Go的内存管理

    本文翻译自Memory Management in Go,介绍了Go语言中内存管理的相关概念。 所有的计算机程序语...

  • Go Function

    函数是组织良好且可重复使用的,用来实现单一或相关功能的代码块,用于提高模块化和复用性。 编写函数的目的是为了将需要...

  • Go语言之函数指针和指针函数

    函数指针 一个指针,指向了一个函数的指针因为go语言中,function,默认看做一个指针,没有*slice,ma...

网友评论

      本文标题:Go语言中的receiver function

      本文链接:https://www.haomeiwen.com/subject/ighkyltx.html