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

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

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


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

查看所有标签

猜你喜欢:

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

自品牌

自品牌

[美] 丹·斯柯伯尔(Dan Schawbel) / 佘卓桓 / 湖南文艺出版社 / 2016-1-1 / 39.80元

什么是自品牌?如何利用新媒体推广自己?如何放大自己的职业优势? 细化到如何巩固“弱联系”人脉?如何在团队里合作与生存?如何开创自己的事业?这些都是职场人不得不面临的问题,但少有人告诉你答案,你需要利用书里分享的高效方法独辟蹊径,把自己变成职场里高性价比的人才。这是一本教你利用新型社交媒体开发职业潜能的自我管理读本,不管你是新人还是老鸟,都可以通过打造自品牌在职场中脱颖而出。如果不甘平庸,就亮......一起来看看 《自品牌》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具