我是靠谱客的博主 细腻猫咪,这篇文章主要介绍Go引用类型与方法声明,现在分享给大家,希望可以做个参考。

随手记录,从入门到跑路,目前尚在入门路上,知识体系并不多,目前都是零零散散的知识片段,仅用于记录Go的学习,顺便为了搜集制作视频的素材。入门的路上,也望各位大神多多关注指点指点小弟的错误。

未完...持续更新

一、常见引用类型

  1. 数组切片
  2. map
  3. channel
  4. 接口(interface)

二、方法

  1. 方法是函数,不允许方法重载。如果基于接收者类型,则允许重载。(接收者类型是啥玩意?)
  2. 声明
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    func (recv receiver_type) methodName(parameter_list) (return_value_list){ //执行代码块 //.... } //调用的方法不需要使用recv的值,则使用_符号替换,如: func (_ receiver_type) methodName(parameter_list) (return_value_list){ //执行代码块 //... } //案例: package main import "fmt" type TwoInt struct{ a int b int } func main(){ //方法接收者的说明 //创建并实例化two1对象 two1 := new(TwoInt) two1.a = 12 two1.b = 10 fmt.Printf("和为:%dn", two1.AddThem()) fmt.Printf("将它们添加到参数:%dn", two1.AddToParam(20)) two2 := TwoInt{3, 4} fmt.Printf("和为:%dn", two2.AddThem()) //非结构体类型方法的例子 fmt.Println("n") fmt.Println(IntVector{1, 2, 3}.Sum()) } func (tn *TwoInt) AddThem() int{ return tn.a + tn.b } func (tn *TwoInt) AddToParam(param int) int { return tn.a + tn.b + param } func (v IntVector) Sum() (s int){ for _, x := range v{ s += x } return s //直接return 不加s也不会报错? }

  3.  基于指针对象的方法
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    type HttpResponse struct{ status_code int} //基于指针 func (r *HttpResonse)validResponse() {r.status_code = 200} //基于值 func (r HttpResponse)updateStaut() string{ return fmt.Sprint(r)} func main() { var r1 HttpResponse r1.validResponse() fmt.Println(r1.updateStatus()) //r2是指针 r2 := new(HttpResonse) r2.validResponse() fmt.Println(r2.updateStauts()) }

最后

以上就是细腻猫咪最近收集整理的关于Go引用类型与方法声明的全部内容,更多相关Go引用类型与方法声明内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部