码迷,mamicode.com
首页 > 其他好文 > 详细

Golang基础编程(二)-函数、方法、接口

时间:2021-06-07 20:06:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:param   调用   的区别   数列   自动   ola   表达式   管理系   手动   

一、函数

Go 语言函数定义格式如下:

func function_name( [parameter list] ) [return_types] {
   函数体
}

函数定义解析:

  • func:函数由 func 开始声明
  • function_name:函数名称,参数列表和返回值类型构成了函数签名。
  • parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
  • return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
  • 函数体:函数定义的代码集合。

函数-示例

技术图片

函数-调用

技术图片

输出结果:

max: 24

函数多返回值

技术图片

输出结果:

Def Abc

二、方法

· Go中没有类,但是可以为结构体定义方法,方法就是一类带有特殊的接收者参数的函数。方法接收者在它自己的参数列表内,位于func关键字和方法名之间

· 接收者可以是struct, interface,自定义的任意类型。但接收者声明必须在同一个包内,非内建类型。

技术图片

 技术图片

输出结果:

Area.getArea=314.00

备注补充:

1. 在golang中有两个特殊的函数,main函数和init函数,main函数不用介绍在所有语言中都一样,它作为一个程序的入口,只能有一个。init函数在每个package是可选的,可有可无,甚至可以有多个(但是强烈建议一个package中一个init函数),init函数在你导入该package时程序会自动调用init函数,所以init函数不用我们手动调用,l另外它只会被调用一次,因为当一个package被多次引用时,它只会被导入一次。

2.接收者是指针和非指针的区别,当接收者为指针时,我们可以通过方法改变该接收者的属性,但是非指针类型缺做不到。

三、接口

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

技术图片

接口-示例:

技术图片

输出结果:

I am Nokia,I can call you

I am IPhone,I can call you

new函数

表达式new(T)将创建一个T类型的匿名变量,所做的是为T类型的新值分配并清零一块内存空间,然后将这块内存空间的地址作为结果返回,而这个结果就是指向这个新的T类型值的指针值,返回的指针类型为*T。

我们只需使用new()函数,无需担心其内存的生命周期或怎样将其删除,因为Go语言的内存管理系统会帮我们打理一切。

空接口

·空接口可以用来承接任何不确定的类型

·空接口作为参数类型,可以传递任意类型

技术图片

输出结果:

(<nil>,<nil>)

(42,int)

(hello,string)

 

Golang基础编程(二)-函数、方法、接口

标签:param   调用   的区别   数列   自动   ola   表达式   管理系   手动   

原文地址:https://www.cnblogs.com/qingfj/p/14856582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!