zoukankan      html  css  js  c++  java
  • Go从入门到精通——创建方法和接口

    创建方法和接口

    本章节介绍如下方法

    • 使用方法
    • 创建方法集
    • 使用方法和指针
    • 使用接口

      结构体让我们明白它是一种创建数据结构的方式,还知道可使用点表示法来访问结构体中的数据。然而,涉及更复杂的操作时,理解和处理起来就不那么容易了。Go 提供了另一种操作数据的方式——通过方法来操作。

    1.1 使用方法

      方法类型于函数,但有一点不同:在关键字 func 后面添加了另一个参数部分,用于接受单个参数。

    type Movie struct{
        Name string
        Rating float32
    }
    
    func (m *Movie) summary() string{
        //code
    }

      请注意,在方法声明中,关键字 func 后面多一个参数——接收者。严格地说,方法接收者是一种类型,这里是指向结构体 Movie 的指针。接下来是方法名、参数以及返回类型。除多了包含接收者的参数部分外,方法与函数完全相同。可将接收者视为与方法相关联的东西。通过声明方法 summary,让结构体 Movie 的任何实例都可使用它。为何要使用方法,而不直接使用函数呢?例如,下面的函数与前面的方法声明等价:

    type Movie struct{
        Name string
        Rating float64
    }
    
    func summary(m *Movie) string {
        //code
    }

      函数 summary 和结构体 Movie 相互依赖,但它们之间没有直接关系。

      例如,如果不能访问结构体 Movie 的定义,就无法声明函数 summary。如果使用函数,则在每个使用函数或结构体的地方,都需包含函数和结构体的定义,这会导致代码重复。另外函数发生任何改变,都必须随之修改多个地方。这样看来在函数与结构体关系密切时,使用方法更合理。

      方法 summary 的实现将 float64 等级制转换为字符串并设置其格式。使用方法的优点在于,只需编写方法实现一次,就可以对结构体的任何势力进行调用。

     
  • 相关阅读:
    函数输出参数 双重指针
    NotePad++ 支持日语字体
    C++ 前置操作符与后置操作符
    用js判断 iPhone6 iPhone6 plus iphonex?
    从浏览器输入一个地址到渲染出网页这个过程发生了什么???
    对.Net 垃圾回收Finalize 和Dispose的理解
    在.NET环境中使用单元测试工具NUnit
    信道
    asp.net 获取当前URL的正确方法
    ASP.NET中常用输出JS脚本的类
  • 原文地址:https://www.cnblogs.com/zuoyang/p/15175276.html
Copyright © 2011-2022 走看看