教程集 www.jiaochengji.com
教程集 >  脚本编程  >  C语言  >  正文 GO语言函数与封装(package,function) 学习总结教程

GO语言函数与封装(package,function) 学习总结教程

发布时间:2018-09-25   编辑:jiaochengji.com
教程集为您提供GO语言函数与封装(package,function) 学习总结教程等资源,欢迎您收藏本站,我们将为您提供最新的GO语言函数与封装(package,function) 学习总结教程资源
上一篇我们学习了GO语言的变量和数据类型,这一篇我们来记录一下GO语言函数与封装(package,function),封装有点类似于Java,如果学过Java的朋友一看就懂。

1. package import和export

GO语言中package用于封装一个相对独立的功能提供给外部使用。package有如下特征
1.1 package会对应一个目录

    这点与Java类似

1.2 package中的源代码存放目录是package最后一个/结束的准,如package math/rand,那么所源代码都在rand目录下
1.3 main是一个特殊的package名字,类似Java的main函数,GO的可执行程序必须在main package下
1.4 package中的源代码存放目录是package最后一个/结束的准,如package math/rand,那么所源代码都在rand目录下
1.5 源代码文件中,以大写字母开头的函数才会被导出(外部访问)。这点类似Java和访问权限控制,只是太隐晦了。

    但是比Python的约定下划线(_)开头的函数是内部函数但是外部还是可以访问有进步一些。

1.6 import package两种形式

import "fmt"
    import "math/rand"

import(
      "fmt"
      "mat/rand"
    )

2. function

2.1 函数申明可以没有参数,但是函数申明最末尾必须要有括号

    这点不像Ruby那么灵活,函数申明和调用都可以省略到括号。 Python在某个版本中也可以省略,但是后来发现代码风格不统一,所以在Python3.0里面肯定不支持不带括号的函数申明和调用了。

package main

import "fmt"

func main() {
    fmt.Println(add(42, 13))
}

2.2 函数的参数和返回值类型,都是写在最后

    这点与Java,C完全是反的,所以也好记。当然也没有什么对与错,习惯就好了。

package main

import "fmt"

func add(x int, y int) int {
    return x y
}

2.3 参数类型如果相同,前面类型申明可以省略,只在最后定义前面所有变量类型

package main

import "fmt"

func add(int, y int) int {
    return x y
}

2.4 可以返回多个值

    这个是高级语言必须的。Java,C这种不支持多返回类型的,当通过返回数组来替代时,然后通过index取数组的值又是魔鬼数字,这时候真抓狂!

package main

import "fmt"

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}

2.5 函数体内的变量可以通过在函数申明中作为函数返回值

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {
    fmt.Println(split(17))
}

您可能感兴趣的文章:
GO语言函数与封装(package,function) 学习总结教程
go 语言学习历程
go run main.go 参数_Go语言入门:Hello world
[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及
go 替换文件某一行_golang快速入门[3]-go语言helloworld
Go语言与面向对象编程
2018年最全Go语言教程零基础入门到进阶实战视频
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
Go与PHP的语法对比
想系统学习GO语言(Golang

[关闭]
~ ~