Zheng Chu's Blog

让希望永驻


  • 主页

  • 所有专栏

  • 历史文章

  • 标签

  • 关于我

GolangNote

Posted on 2020-05-08 Edited on 2020-12-06 In Go Views:

基本语法

:=

Inside a function, the := short assignment statement can be used in place of a var declaration with implicit type.

Outside a function, every statement begins with a keyword (var, func, and so on) and so the := construct is not available.

切片 = 数组引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func main() {
names := [4]string{
"John",
"Paul",
"George",
"Ringo",
}
fmt.Println(names)

a := names[0:2]
b := names[1:3]
fmt.Println(a, b)

b[0] = "XXX"
fmt.Println(a, b)
fmt.Println(names)
}
/*
output:

[John Paul George Ringo]
[John Paul] [Paul George]
[John XXX] [XXX George]
[John XXX George Ringo]
*/

结构体切片初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func main() {
s := []struct {
i int
b bool
}{
{2, true},
{3, false},
{5, true},
{7, true},
{11, false},
{13, true},
}
fmt.Println(s)
}

这个赋值之后还是它?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main

import "fmt"

func main() {
s := []int{2, 3, 5, 7, 11, 13}
printSlice(s)

s = s[:0]
printSlice(s)

s = s[:4]
printSlice(s)

s = s[2:]
printSlice(s)
}

func printSlice(s []int) {
fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}

/*
len=6 cap=6 [2 3 5 7 11 13]
len=0 cap=6 []
len=4 cap=6 [2 3 5 7]
len=2 cap=4 [5 7]
*/

nil

切片的零值是 nil。

make创造切片

make 函数会分配一个元素为零值的数组并返回一个引用了它的切片:

1
2
3
4
b := make([]int, 0, 5) // len(b)=0, cap(b)=5

b = b[:cap(b)] // len(b)=5, cap(b)=5
b = b[1:] // len(b)=4, cap(b)=4

append内建函数

向元素类型为T的切片s中追加同类型元素,返回该类型的切片。

1
func append(s []T, vs ...T) []T

range

for 循环的 range 形式可遍历切片或映射。

当使用 for 循环遍历切片时,每次迭代都会返回两个值。第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本。

1
2
3
4
5
6
var pow = []int {1, 2}
func main(){
for i, v := range pow{
fmt.Printf("...")
}
}
# Go
VSCode学习记录
Scala-part1
  • Table of Contents
  • Overview
Zheng Chu

Zheng Chu

90 posts
20 categories
25 tags
GitHub 简书 CSDN E-Mail
  1. 1. 基本语法
    1. 1.1. :=
    2. 1.2. 切片 = 数组引用
    3. 1.3. 结构体切片初始化
    4. 1.4. 这个赋值之后还是它?
    5. 1.5. nil
    6. 1.6. make创造切片
    7. 1.7. append内建函数
    8. 1.8. range
© 2021 Zheng Chu
Powered by Hexo v4.2.1
|
Theme – NexT.Pisces v7.3.0
|