go最近很火啊,自带高并发,内置网络模块强大,作为后端工程师一枚,自然也要学起来!
go 的基础部分跟我们之前学过的大部分语言是都是十分相似的,上手十分简单。
第一个go程序
第一个程序大都是hello嘛,向新世界打个招呼 :)
import fmt
func main(){
fmt.Println("hello golang!")
}
数据类型以及变量声明的方式
变量声明的方式
// var 变量名 类型 = 表达式
var num int = 1
// 也可以声明变量,但是不赋值
var num int // 这样的默认值就是int的默认值 0
// 可以直接赋值并且声明类型
num := 1
// 可以实现多值定义
a, b, c := 1, 2, "hello"
var (
a = 1
b = 2
c = "hello"
)
常量声明
常量声明,我们可以直接使用 const
关键字,不需要指定数据的类型,通常,常量我们用大写进行命名
我们指定变量的值,会自定将变量转为对应的类型
const MAX_SIZE = 10
基础类型
- 整型
- 有符号:int, int8, int16, int32, int64
- 无符号:uint,uint8,uint16,uint32,uint64
- 浮点数:float,float32, float64
- 布尔型:bool
- 字符串:string
- 指针
- 常量:使用const声明
const name = "Mike"
字符串转换
- 字符串转数字:
strconv.Atoi("123")
- 数字转字符串:
strconv.Itoa(123)
数字类型的强制转换:
- int -> float:
i2f = float(i)
- float -> int:
f2i = int(f)
3. 控制结构:if/for/switch
if
// 单纯的if
if you == "mike" {
fmt.Println("Yes, I am mike.")
}
// if + else
if you == "mike" {
fmt.Println("Yes, I am mike.")
} else {
fmt.Println("No, my name is ", you)
}
// if + else if + else
if you == "mike" {
fmt.Println("Yes, I am mike.")
} else if you == "lisa" {
fmt.Println("Ok, I am lisa.")
} else {
fmt.Println("No, my name is ", you)
}
switch
- switch 自带break
- 可以使用fallthrough,让程序执行到下一个条件
switch you {
case "mike":
// yes I am mike
case "lisa":
// yes I am lisa
case "john":
// I am john, fall through to default
fallthrough
default:
// nothing match
}
for
// 简单for循环
for i := 0; i < 100; i++ {
// do something...
}
// for 实现while循环
for {
// do something
// then break
}
// 或者
for i < 100 {
// do something
// increase i
// i++
}
// 使用for range 遍历数组或者其他可迭代对象
nums := []int{1,2,3}
for index, num := range nums {
// print(idx, num)
}