培训首页  >  大数据新闻  >  兄弟连区块链培训之Go语言基础自定义函数

兄弟连区块链培训之Go语言基础自定义函数

[2018-08-15 17:12:52] 浏览量:64 来源:

北京兄弟连IT

  “区块链+时代无疑会是下一个风口,然而现在的区块链行业专业型人才正在遭遇瓶颈”兄弟连教育区块链学院院长尹成表示,“希望能通过兄弟连教育区块链培训学院为社会为企业培养并输送更多优质的区块链高精尖型技术人才。

定义格式

函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。

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

func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) {

//函数体


return v1, v2 //返回多个值

}

函数定义说明:

func:函数由关键字 func 开始声明

FuncName:函数名称,根据约定,函数名字母小写即为private,大写即为public

参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数返回类型:

① 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名

② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号

③ 如果没有返回值,那么就直接省略最后的返回信息

④ 如果有返回值, 那么必须在函数的内部添加return语句

函数定义

无参无返回值

func Test() { //无参无返回值函数定义

    fmt.Println("this is a test func")

}


func main() {

Test() //无参无返回值函数调用

}


有参无返回值

普通参数列表

func Test01(v1 int, v2 int) { //方式1

    fmt.Printf("v1 = %d, v2 = %d\n", v1, v2)

}


func Test02(v1, v2 int) { //方式2, v1, v2都是int类型

    fmt.Printf("v1 = %d, v2 = %d\n", v1, v2)

}


func main() {

Test01(10, 20) //函数调用

Test02(11, 22) //函数调用

}

不定参数列表

不定参数类型

不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型:

//形如...type格式的类型只能作为函数的参数类型存在,并且必须是最后一个参数

func Test(args ...int) {

for _, n := range args { //遍历参数列表

        fmt.Println(n)

    }

}


func main() {

//函数调用,可传0到多个参数

    Test()

    Test(1)

    Test(1, 2, 3, 4)

}

不定参数的传递

func MyFunc01(args ...int) {

    fmt.Println("MyFunc01")

for _, n := range args { //遍历参数列表

        fmt.Println(n)

    }

}


func MyFunc02(args ...int) {

    fmt.Println("MyFunc02")

for _, n := range args { //遍历参数列表

        fmt.Println(n)

    }

}


func Test(args ...int) {

MyFunc01(args...)     //按原样传递, Test()的参数原封不动传递给MyFunc01

MyFunc02(args[1:]...) //Test()参数列表中,个参数及以后的参数传递给MyFunc02

}


func main() {

Test(1, 2, 3) //函数调用

}

无参有返回值

有返回值的函数,必须有明确的终止语句,否则会引发编译错误。

一个返回值

func Test01() int { //方式1

    return 250

}


//建议:好命名返回值,因为不命名返回值,虽然使得代码更加简洁了,但是会造成生成的文档可读性差

func Test02() (value int) { //方式2, 给返回值命名

    value = 250

    return value

}


func Test03() (value int) { //方式3, 给返回值命名

    value = 250

    return

}


func main() {

v1 := Test01() //函数调用

v2 := Test02() //函数调用

v3 := Test03() //函

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息