Go基础知识1(来自于go指南)
因为我本来是学C++的,所以在学习go的过程中,会与C++进行一些比较。但我C++学习的也并不完全,如有错误,麻烦指出啦。
一、包、变量和函数
包
通过import来导入包,包名与导入路径的最后一个元素一致。
例如“math/rand”包中的源码均以package rand语句开始。
import{
"fmt"
"math/rand"
}
也可以使用分开的import来导入包
import "fmt"
import "math"
从包导出名首字母是大写的,例如Pi,未导出的名首字母是小写的,例如pi。在导入一个包时,只能引用其中已经导出的名字,任何“未导出”的名字在包外无法使用
在C++中,包(库)的导入,主要通过#include来进行,并且命名的使用是通过命名空间的声明来进行的
函数
函数可以没有参数,也可以接受多个参数。(重点:类型在变量名之后)
func add(x int, y int) int{
return x+y
}
返回类型也放在func 函数名(参数)后。
当连续两个或多个函数的已命名形参类型相同时,除最后一个类型外,其他都可以省略。
func add(x, y int) int{
return x+y
}
函数可以返回任意数量的返回值,例如可以返回两个string类型
func swap(x, y string) (string, string){
return y,x
}
go的返回值可以命名,被视为定义在函数顶部的变量。没有参数的return语句返回已命名的返回值。(类似C++的引用,但是区别是不是传入的参数,是自己创造的)
func split(sum int) (x, y int){
x = sum * 4 / 9
y = sum - x
return
}
在C++中,函数的定义是没有func的标识的,直接用返回值的类型作为函数的开始。并且函数参数的类型在前,参数名称在后。(最明显的,C++需要用;来分隔不同语句)
变量
var语句用于声明一个变量列表,跟函数的参数列表一样,类型在最后
var a, b, c int
变量的初始化,接在参数类型之后,用“=”赋值,如果初始化值已经存在&#x