内容简介:Go 语言本身是一门极简的语言,它是 “大道至简” ,“少即是多” 理念的典范语言,而我们的接口服务用到东西又只是一小部分,所以学员需要掌握的基本语法是极少的。Go 语言一共25个Go 语言一共36个
Go 语言本身是一门极简的语言,它是 “大道至简” ,“少即是多” 理念的典范语言,而我们的接口服务用到东西又只是一小部分,所以学员需要掌握的基本语法是极少的。
Go 语言一共25个 关键字 ,对于新手很容易记
| 关键字 | 关键字 | 关键字 | 关键字 | 关键字 |
|---|---|---|---|---|
| break | default | func | interface | select |
| case | defer | go | map | struct |
| chan | else | goto | package | switch |
| const | fallthrough | if | range | type |
| continue | for | import | return |
Go 语言一共36个 预定义标识符
| 标识符 | 标识符 | 标识符 | 标识符 | 标识符 | 标识符 |
|---|---|---|---|---|---|
| append | bool | byte | cap | close | complex |
| complex64 | complex128 | uint16 | copy | false | float32 |
| float64 | imag | int | int8 | int16 | uint32 |
| int32 | int64 | iota | len | make | new |
| nil | panic | uint64 | println | real | |
| recover | string | true | uint | uint8 | uintptr |
常见的基本数据类型
| 基本数据类型 | 基本数据类型 | 基本数据类型 | 基本数据类型 | 基本数据类型 |
|---|---|---|---|---|
| uint8 | uint16 | uint32 | uint64 | uint |
| int8 | int16 | int32 | int64 | int |
| bool | byte | string | float32 | float64 |
最常见的基本数据类型的使用
// 定义一个整数,默认值为 0 var i int // 定义整数并赋值 var i int = 23 // 或者这样简洁定义 i := 23 // 定义64位的整数并赋值 var i64 int64 = 1024 // 或者这样简洁定义 i64 := 2048 // 定义64位的浮点数 var f64 float64 = 3.141516 // 或者这样简洁定义 f64 := 3.141516 // 定义字符串,默认值为空字符串 var s1 string // 定义字符串并赋值 s2 := "this is a string"
slice 和 map是最常见的复合数据类型
// 定义一个 slice 数据类型
s := []int{6, 3, 9, 8, 1, 5}
// slice 取值
s[0]
s[2]
...
// 定义两个 map 数据类型,其实它们就是键值对,键值对可以是任何基本数据类型
m1 := map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "e", 6: "f"}
m2 := map[string]int{"k1": 2, "k2": 3, "k3": 4}
// map 取值
m1[1]
m1[2]
m2["k1"]
m2["k2"]
...
if 判断语句的使用
// 定义两个整数并赋值
a := 23
b := 25
// if 判断语句
if a > b {
fmt.Printf("%d > %d\n", a, b)
} else if a < b {
fmt.Printf("%d < %d\n", a, b)
} else {
fmt.Printf("%d == %d\n", a, b)
}
for 循环语句的使用
// 定义一个 slice 数据类型
s := []int{6, 3, 9, 8, 1, 5}
// 循环遍历一个 slice 数据
for i, l := 0, len(s); i < l; i++ {
fmt.Printf("slice elem%d is %d\n", i, s[i])
}
// 定义一个字典数据类型
m := map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "e", 6: "f"}
// 循环遍历一个字典数据
for k, v := range m {
fmt.Printf("map key%d is %s\n", k, v)
}
结构体嵌套
,在结构体里很好用,类似于两个实体之间的继承,我们把结构体公共的属性,集中定义在一个基类结构体里,嵌套到其他结构体里,可以省不少的代码,实际项目中,我们经常用到。
// BaseField 基类结构体
type BaseField struct {
ID int64
Created time.Time
Updated time.Time
}
// User 用户结构体
type User struct {
BaseField //嵌套基类结构体
UserName string
Password string
Sex int
Status int
}
多返回值函数,是非常棒的东西,习惯了后,感觉其他语言上没有多返回值函数,真的非常不方便。在 Go 开发的项目中,随处可见,最常见的就是一个函数既返回数据,又返回错误信息。
// GetUser 多返回值函数
func GetUser() (*User, error) {
user := User{
BaseField: BaseField{
ID: 1,
Created: time.Now(),
Updated: time.Now(),
},
UserName: "abc",
Password: "password",
Sex: 1,
Status: 1,
}
return &user, nil
}
// MulRetVal 多返回值函数
func MulRetVal() (int, string) {
return 1, "success!"
}
小结
Go 的语法相比 C 语言,简化了不少,它对于我们记忆相当友好。25个关键字和36个预定的标识符,组成了 Go 语言主要的语法基础,相对其他语言已经相当精简了。和其他语言一样,在实际项目中,用到的关键字会更少,有相当部分的关键字和标识符是不常用了,本章代码示例,就是项目经常用到基础语法,读者如果之前了解过 Go 语言,只要看一遍,就可以掌握了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Swift语法快速入门(一)之 Swift基础语法
- 在ES6中使用扩展语法有什么好处?它与rest语法有什么不同?
- Python 基础语法
- go语法
- JPQL 语言语法
- reStructuredText简明语法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。