go语法基础与其他语言对比学习(7) | 青训营

108 阅读2分钟

函数

func 函数名 (形参列表) (返回值类型列表) {
    执行语句..
    return + 返回值列表
} 
  • 基本跟其他语言一致,但还是如同声明变量一般,创建自定义函数仍然将函数返回值类型后置(且可以返回多个函数,但需要接收返回值的类型与位置一一对应)

包的细节详解

  • package进行包的声明,建议:包的声明这个包和所在的文件夹同名
  • main包是程序的入口包,一般main函数会放在这个包下。main函数一定要放在main包下,否则不能编译执行
  • 打包语法:
package 包名
  • 跟Java类似

  • 引入包的语法:import "包的路径"。包名是从$GOPATH/src/后开始计算的,使用/进行路径分隔。

  • 如果有多个包,建议一次性导入,格式就是用一个大括号括起来,然后相应的包都写到大括号里面

  • 在函数调用的时候前面要定位到所在的包

  • 函数名,变量名首字母大写,函数,变量可以被其它包访问

  • 一个目录下不能有重复的函数

  • 包名和文件夹的名字,可以不一样

  • 一个目录下的同级文件归属一个包

  • 同级别的源文件的包的声明必须一致

  • 可以给包取别名,取别名后,原来的包名就不能使用了

  • 包到底是什么:

    • 在程序层面,所有使用相同 package 包名 的源文件组成的代码模块
    • 在源文件层面就是一个文件夹

匿名函数

  • Go支持匿名函数,如果我们某个函数只是希望使用一次,可以考虑使用匿名函数
  • 匿名函数使用方式:

在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次(用的多)

  • 跟其他语言的如JavaScript的箭头函数、Java的匿名函数、c/c++的lambda表达式基本一致
package main
import "fmt"func main() {
    //定义匿名函数,定义的同时调用
    result := func (num1 int, num2 int) int {
        return num1 + num2
    } (10, 20) //直接输入参数
    fmt.Println(result) //30
}