Mainly used to record Java, DBMS, HDFS... related learning notes
包声明
package packageName
注意:包名和文件名无关 一个文件夹内的代码必须为一个包名 否则编译报错
引入包
import (
"fmt"
"./filepath"
)
import 为() 一个包换一行 可以是文件夹路径
函数
func FunctionNane(a,b int) int {
return a + b
}
func function_name( [parameter list] ) [return_types] {
//函数体
}
说明:
func:函数由 func 开始声明
函数可以返回多个值
注意:错误语法格式
func main()
{ // 错误,{ 不能在单独的行上
fmt.Println("Hello, World!")
}
变量
声明变量的一般形式是使用 var 关键字:var identifier type
示例:
var a int
var b bool
var str string
你也可以改写成这种形式:
//全局变量的声明一般这样写
var (
a int
b bool
str string
)
:= 的含义
// = 使用必须使用先var声明例如:
var a
a=100
//或
var b = 100
//或
var c int = 100
// := 是声明并赋值,并且系统自动推断类型,不需要var关键字
d := 200
/*
定义三个变量,它们分别初始化为相应的值
vname1为v1,vname2为v2,vname3为v3
然后Go会根据其相应值的类型来帮你初始化它们
*/
// var vname1, vname2, vname3 = v1, v2, v3
var number1, number2, number3 = 1, 2, 3
/*
定义三个变量,它们分别初始化为相应的值
vname1为v1,vname2为v2,vname3为v3
编译器会根据初始化的值自动推导出相应的类型
*/
// vname1, vname2, vname3 := v1, v2, v3
number1, number2, number3 := 1, 2, 3
注意:不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用 var 方式来定义全局变量。
语句 & 表达式
注释
//单行注释
/*
多行注释
*/
程序入口
一个项目一个 main 包和 func main(){} 方法 为入口
main 启动
Go 语言的包与文件夹是一一对应的,它具有以下几点特性:
main 包下有多个文件时,执行 go run 和 go build 可能报错 找不到函数
linux 下 执行 go run *.go
windows 下 执行报错
需要执行 go run ./
等同于 linux go run *.go
go 语言的类型
golang 中分为值类型和引用类型(C 语言的指针)
值类型分别有:int 系列、float 系列、bool、string、数组和结构体
引用类型有:指针、slice 切片、管道 channel、接口 interface、map、函数等
值类型的特点是:变量直接存储值,内存通常在栈中分配
引用类型的特点是:变量存储的是一个地址,这个地址对应的空间里才是真正存储的值,内存通常在堆中分配