1.常量
使用 const 定义 格式如:
const identifier[type] = value
//例如
const pi float32 = 3.1415926....
const hello = "你好Go!"
const return = ture
const 人数 = 100
2.转义字符
Go使用反斜杠作为转义字符
例如 :换行符(\n), 制表符(\t)等等
3.赋值
func main() {
a := 2 // := 是GO的一种简写 , 表示函数内部声明并赋值
b := 20
c = a
fmt.Println(a,b,c)
}
注意:
d := n++
if n++ == 1 {}
++n
上门这三个都是错误的演示
在Go中 ++和--是语句,不是表达式,没有运算符优先级之说
还有Go语言不支持重载
4.注释
就是平常的三种
1. //行注释
2. /*这也是一个注释*/
3. /*
这是一个Go的注释
*/
5.枚举
常量可以作为枚举
const(
con = 0
opne = 1
close = 2
)
现在数字0,1,2分别代表控制,打开,关闭
关键字实现枚举
package main
import("fmt")
const(
a = iote //a == 0
b //b == 1 ,隐式使用iota关键字,实际等同于 b == iota
c //c == 2 ,c == iota
d,e,f = iota, iota,iota //d=3,e=3,f=3 ,同一行值相同,此处不能只写一个iota
g = iota //g = 4
h = "h" //h = "h" ,单独赋值,iota依旧等于5
i //i = "h" ,默认使用上面的赋值,iota依旧递增为6
j = iota //j = 7
)
const z = iota //每个单独定义的const常良中,iota都会重置,此时z=0
func main(){
fmt.Println(a,b,c,d,e,f,g,h,i,j)
}
6.变量
声明变量
var a int //定义一个变量a为int型
var b bool //定义一个变量b为bool型
var a, b int //定义两个变量为int型
也可以这样
var(
a,b int
c bool
d string
)
//多个变量同时声明和赋值
var a, b, c = 1, 2, 3
注意:
下面这种只能在函数体内使用
x,y = 5,6
6.1 局部变量声明
变量的声明有两种,上面的是一种,另一种是使用:=符号
例如:
a := 1 //等同于 var a = 1
Go语言编译器能智能判别类型,不用写a变量的类型也可以的
a := 1
/* 1. 这种全局变量的声明是错误的*/
var a = 1
/* 2. 全局变量声明应该用这种形式*
a := 10
/* 3.前面已经定义了变量a ,同一个代码块中不能重复再次定义*/
func main(){
b:=2 //只能在函数体中使用这种语法
a:=100 //把100赋给a没问题
a:=hello //函数体内部属于另一个代码块,可以再次声明变量a,改变变量类型
fmt.Println(a,b,c)
}
var c = 0 //全局变量不限位置,在函数体外即可
/*
返回
100 , 2 ,0
*/
7.匿名函数
func main() {
x := 4
fmt.Println("休息休息")
}
注意!!!!
//这段代码会报错
局部变量有个特点就是定义了必须使用
如果定义了x并没有用,编译会出错,即使是函数赋值也会出错
8. init函数
package main
import (
"fmt"
"math"
)
var pi float64
func init() {
pi = 4 * math.Atan(1) //在init函数中计算pi的值
}
func main() {
Dpi := pi * pi
fmt.Println(pi, Dpi)
}
返回:3.141592653589793 9.869604401089358