hyj1412's Blog

record, write and share.


  • Home

  • Tags

  • Categories

  • Archives

Go基础之函数

Posted on 2022-10-08 | In go

定义函数

使用 func 关键字

1
2
3
func 函数名(参数) (返回值) {
函数体
}

例如:

1
2
3
func add(x int, y int) int {
return x + y
}

调用函数

1
2
sum := add(1, 2)
fmt.Println(sum)
Read more »

Go基础之结构体

Posted on 2022-10-07 | Edited on 2022-10-08 | In go

结构体

结构体是一种数据类型, 可以保存多个维度数据的类型, 类似于面向对象中的类

定义结构体

使用 type 和 struct 关键字定义结构体

1
2
3
4
5
type 结构体名 struct {
字段名 字段类型
字段名 字段类型
...
}

例如:

1
2
3
4
5
6
// 定义一个结构体
type person struct {
name string
age int
city string
}
Read more »

Go基础之map

Posted on 2022-10-07 | Edited on 2022-10-08 | In go

map 的定义和初始化

map 存储的是键值对的数据

map 也需要申请内存

1
map[KeyType]ValueType
  • KeyType:表示键的类型。
  • ValueType:表示键对应的值的类型。

map 类型的变量默认初始值为 nil,需要使用 make()函数来分配内存。

1
make(map[KeyType]ValueType, [cap])

其中 cap 表示 map 的容量,该参数虽然不是必须的,但是我们应该在初始化 map 的时候就为其指定一个合适的容量。

1
2
3
4
5
6
7
8
9
10
11
# 先声明再初始化填充数据
var m1 map[string]int
// true 初始值为 nil,需要使用 make()函数来分配内存
fmt.Println(m1 == nil)
m1 = make(map[string]int, 2)
m1["张三"] = 90
m1["小明"] = 100
m1["李四"] = 98
fmt.Println(m1)
// 如果key不存在返回的是value对应类型的零值, 这里会打印0
fmt.Println(m1["王五"])
1
2
3
4
5
6
7
# 声明时初始化并填充数据
scoreMap2 := map[string]int{
"张三": 90,
"小明": 100,
"李四": 98,
}
fmt.Println(scoreMap2)
Read more »

Go基础之切片

Posted on 2022-10-07 | In go

定义以及初始化

切片是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装,支持自动扩容。

切片是一个引用类型,它的内部结构包含地址、长度和容量。

切片: 指针、长度、容量

声明语法:

var name []T

例如:

1
2
3
4
5
6
7
8
var s1 []int
// []
fmt.Println(s1)
// true 没有分配内存 == nil 故打印输出true
fmt.Println(s1 == nil)
s1 = []int{1, 2, 3}
// [1 2 3]
fmt.Println(s1)

切片的长度和容量

可以通过使用内置的len()函数求长度,使用内置的cap()函数求切片的容量

Read more »

Go基础之数组

Posted on 2022-10-07 | In go

数组的定义

var 数组变量名 [元素数量]T

例如:

定义一个长度是 10 元素类型是 int 的数组 ages

var ages [10]int

定义一个长度是 10 元素类型是 string 的数组 names

var names [10]string

数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。

数组的初始化

指定长度

1
2
3
4
5
6
7
// 声明了一个变量ages, 它是[10]int类型
var ages1 [10]int
// [0 0 0 0 0 0 0 0 0 0]
fmt.Println(ages1)
var ages2 = [10]int{1, 2, 3, 4, 5}
// [1 2 3 4 5 0 0 0 0 0]
fmt.Println(ages2)
Read more »
12…11

hyj1412

记录生活,书写心得,分享成果
51 posts
26 categories
48 tags
Creative Commons
© 2022 hyj1412 |
Creative Commons
Powered by Hexo v3.9.0
|
Theme – NexT.Muse v7.1.0