用 Go 开发接口服务--Go 语言基本语法

栏目: Go · 发布时间: 5年前

内容简介: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 print 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 语言,只要看一遍,就可以掌握了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

智能优化方法

智能优化方法

汪定伟 / 2007-4 / 37.10元

《智能优化方法》主要介绍近年来产生发展的多种智能优化算法。包括为人熟知的遗传算法、禁忌搜索算法、模拟退火算法和蚁群优化算法;近年来已成为研究热点的粒子群优化算法;还有尚待普及的捕食搜索算法和动态环境下的进化计算。书中讨论这些算法的产生和发展、算法的基本思想和理论、基本构成、计算步骤和主要的变形以及数值例子和实际应用。为了方便读者学习,各章之后还附有精选的习题、思考题及相关的参考文献。 本教材......一起来看看 《智能优化方法》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试