美文网首页
Go语言--方法

Go语言--方法

作者: liuxuech | 来源:发表于2016-11-03 15:52 被阅读0次

1、Go 中有一个概念:

1)Go 方法是作用在接收者(receiver)上的一个函数,接收者是某种类型的变量。因此方法是一种特殊类型的函数。

2)除了接口类型(给接口增加方法会报错:invalid receiver type…),任何类型都可以有方法,甚至可以是函数类型,结构体,切片,map等,也可以是 int、bool、string 或数组的别名类型

3)最后接收者不能是一个指针类型,但是它可以是任何其他允许类型的指针

4)别名类型不能有它原始类型上已经定义过的方法。

2、方法的定义格式:

func  (recv receiver_type)  methodName (parameter_list)  (return_value_list)  { ... }

recv各种方式:

1)receiver 的实例

2)receiver 的实例的指针,Go 会自动解引用。(推荐)

3)“_”下划线,在方法体内不需要使用recv的值。

recv的作用: 就像是面向对象语言中的this或self。

ep:

type  Point  struct  {

    x, y  float64

}

func  (p   *Point)  Abs( )  float64  {

    return  math.Sqrt( p.x  *  p.x  +  p.y  *  p.y )  //这里的p和JavaScript中的this作用差不多

}

3、指针方法和值方法都可以在指针或非指针上被调用。

4、通过以下例子可以理解Go语言的方法和知道如果导出\读取私有的属性:

packageperson

type  Person  struct  {

    firstName  string

    lastName  string

}

func  (p   *Person)  FirstName( )  string  {

    return  p.firstName

}

func  (p   *Person)  SetFirstName( newNamestring )  {

    p.firstName = newName

}

5、内嵌类型的方法和继承

 将父类型放在子类型中来实现亚型。

相关文章

  • go语言中的方法

    go支持OO语言的一些特性,方法就是其中之一。本文将介绍go语言中方法相关的概念。 方法声明 在go语言中,我们可...

  • go语言array, slice, map(四)

    array go语言数组,定义方法如下: var arr [n]type 声明方法 go语言也支持多维数组 sli...

  • Golang中Bit数组如何实现(代码示例)

    Go语言[https://www.php.cn/be/go/]实现Bit数组常用方法 Go语言里的集合一般会用ma...

  • Golang中Bit数组的实现

    Go语言[https://www.php.cn/be/go/]实现Bit数组常用方法 Go语言里的集合一般会用ma...

  • Go语言--方法

    1、Go 中有一个概念: 1)Go 方法是作用在接收者(receiver)上的一个函数,接收者是某种类型的变量。因...

  • go语言函数测试

    go语言测试方法 测试split 编写的测试函数 go 测试使用的命令

  • 潍坊go语言培训

    潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍...

  • Go语言和C语言的交叉访问

    Go语言中导入C语言 方法 Go语言中导入C语言都需要单行注释和多行注释注释起来 在C语言紧随其后的位置编写" i...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • golang测试

    go语言提供了对测试的支持。在go的标准库文档中的testing包页面,对go语言的测试方法有较为详细的使用说明,...

网友评论

      本文标题:Go语言--方法

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