0.前言
1. go定义变量的几种方式
2. go内建变量类型
3. 常量的定义
4. go枚举
5. go的if语句
零. go语言的换行
go语言对换行很有讲究, 如果想换行,必须有一个逗号, 否则就会报错
变量p编译都不通过, 因为最后的}换行了, 换行必须要有逗号. 写成pp的样子就可以了
一. go定义变量的集中方式
1. go一旦定义就有一个默认的值
具体每一种类型的默认初始化值是什么?
2. go如何定义变量初始化
第一种方式: 只声明, 不赋值
var int a;
var string b
第二种方式: 变量会自动识别变量类型
var a, b, c, d = 1, "您好", false, 10.1
第三种方式: 通过 := 的方式赋值
a, b := "我", 10
注意:
第四种方式: 使用var()
var (
a = 10
b = "您好"
)
二. go内建变量类型
int类型的内建变量有11中
rune类型是go语言的char类型
float类型
complex类型
java和go数据类型对比
三. 常量的定义
方式一: 使用const定义
const aa = 3
方式二: 如果有多个变量, 可以使用const()定义
const(
aa = 10
bb = 100
)
备注: 1. go语言中的常量一般不全部大写,因为在go中, 大小写是有含义的. 就像普通变量的命名规则就可以了
四. go枚举类型
1. 定义一个枚举
func enums(){
const (
cpp = 1
java = 2
php = 3
go = 4
python = 5
)
fmt.println(cpp, java, php, go ,python)
}
打印结果: 1, 2, 3, 4, 5
2. 使用自动增长值的方式
func enums(){
const (
cpp = iota
_
php
go
python
javascript
)
fmt.println(cpp, javascript, php, go ,python)
}
打印结果: 1, 6, 2, 3, 4
3. 复杂的自增长类型
func enums(){
const (
b = 1<<(10* iota)
kb
mb
gb
tb
pb
)
fmt.println(b, kb, mb, gb ,tb, pb)
}
打印结果:1 1024 1048576, 1073741824, 1099511627776, 1125899906842624
备注: [1<<(10 * iota)的含义时: 如果: iota=0, i* 2的0次方, iota=1, 1*2的10次方. 如果iota=2, 就是1*2的20次方, 一次类推]
五. go条件语句
1. if语句
这里和其他语言都基本类似, 有一点, 可以将查询返回的结果和if语句写在一行. 类似下面这样
2. switch语句
例如:
package main
import "fmt"
func useSwitch(grade int) {
switch {
case grade < 0 || grade > 100:
panic("分数异常")
case grade < 60:
fmt.Println("不及格")
case grade >= 60 && grade <= 80:
fmt.Println("良好")
case grade > 80 && grade <= 100:
fmt.Println("优秀")
}
}
func main() {
useSwitch(40)
useSwitch(65)
useSwitch(85)
useSwitch(100)
useSwitch(-20)
}
3. for循环.
这里面有三个for循环, 初始条件为空, 有循环条件和运算, 相当于while....do
第二个for循环是一个死循环. Go里有gorouting, 会经常使用到死循环.
第三个for循环初始条件和运算都为空, 只有循环条件. 相当于while.