Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
Coding Tree
提交
9c2db526
C
Coding Tree
项目概览
檀越@新空间
/
Coding Tree
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coding Tree
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9c2db526
编写于
9月 15, 2022
作者:
彭世瑜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
047c6426
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
202 addition
and
5 deletion
+202
-5
blog/golang/golang-slice.md
blog/golang/golang-slice.md
+201
-1
blog/golang/index.md
blog/golang/index.md
+1
-4
未找到文件。
blog/golang/golang-slice.md
浏览文件 @
9c2db526
...
...
@@ -153,4 +153,204 @@ func main() {
// s4: [1 2 3 4 5]
}
```
\ No newline at end of file
```
## 切片的遍历
for循环
```
go
package
main
import
"fmt"
func
main
()
{
var
s
=
[]
int
{
1
,
2
,
3
,
4
}
length
:=
len
(
s
)
for
i
:=
0
;
i
<
length
;
i
++
{
fmt
.
Printf
(
"s[%v]=%v
\n
"
,
i
,
s
[
i
])
}
// s[0]=1
// s[1]=2
// s[2]=3
// s[3]=4
}
```
for...range
```
go
package
main
import
"fmt"
func
main
()
{
var
s
=
[]
int
{
1
,
2
,
3
,
4
}
for
index
,
value
:=
range
s
{
fmt
.
Printf
(
"s[%v]=%v
\n
"
,
index
,
value
)
}
// s[0]=1
// s[1]=2
// s[2]=3
// s[3]=4
}
```
## 切片的CURD(添加、删除、修改、查询)
切片是动态数组
添加元素
```
go
package
main
import
"fmt"
func
main
()
{
var
s
=
[]
int
{}
// 添加单个元素
s
=
append
(
s
,
1
)
// 添加多个元素
s
=
append
(
s
,
2
,
3
)
fmt
.
Printf
(
"s: %v
\n
"
,
s
)
// s: [1 2 3]
}
```
删除元素
```
go
package
main
import
"fmt"
func
main
()
{
var
s
=
[]
int
{
1
,
2
,
3
,
4
,
5
}
// 删除元素3,索引为2
// 公式:s = append(s[:index], s[index+1:]...)
s
=
append
(
s
[
:
2
],
s
[
3
:
]
...
)
fmt
.
Printf
(
"s: %v
\n
"
,
s
)
// s: [1 2 4 5]
}
```
修改元素
```
go
package
main
import
(
"fmt"
)
func
main
()
{
var
s
=
[]
int
{
1
,
2
,
3
,
4
,
5
}
s
[
2
]
=
6
fmt
.
Printf
(
"s: %v
\n
"
,
s
)
// s: [1 2 6 4 5]
}
```
查询元素
```
go
package
main
import
(
"fmt"
)
func
main
()
{
var
s
=
[]
int
{
1
,
2
,
3
,
4
,
5
}
// 查询元素的索引
for
index
,
value
:=
range
s
{
if
value
==
3
{
fmt
.
Printf
(
"index: %v
\n
"
,
index
)
break
}
}
// index: 2
}
```
## 切片的复制 copy
浅拷贝
```
go
package
main
import
(
"fmt"
)
func
main
()
{
var
s1
=
[]
int
{
1
,
2
,
3
,
4
,
5
}
// 浅拷贝,地址引用,指向同一个对象
var
s2
=
s1
s2
[
0
]
=
6
fmt
.
Printf
(
"s1: %v
\n
"
,
s1
)
// s1: [6 2 3 4 5]
fmt
.
Printf
(
"s2: %v
\n
"
,
s2
)
// s2: [6 2 3 4 5]
}
```
深拷贝
```
go
package
main
import
(
"fmt"
)
func
main
()
{
var
s1
=
[]
int
{
1
,
2
,
3
,
4
,
5
}
// copy目标容器,没有足够的空间接收数据
var
s2
=
[]
int
{}
copy
(
s2
,
s1
)
fmt
.
Printf
(
"s2: %v
\n
"
,
s2
)
// s2: []
// copy目标容器,需要预先开辟足够的内存空间
var
s3
=
make
([]
int
,
len
(
s1
))
copy
(
s3
,
s1
)
s3
[
0
]
=
6
// s1没有被修改
fmt
.
Printf
(
"s1: %v
\n
"
,
s1
)
// s1: [1 2 3 4 5]
// s3被修改了
fmt
.
Printf
(
"s3: %v
\n
"
,
s3
)
// s3: [6 2 3 4 5]
}
```
blog/golang/index.md
浏览文件 @
9c2db526
...
...
@@ -37,7 +37,4 @@
https://www.bilibili.com/video/BV1ME411Y71o?p=27&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da
https://www.bilibili.com/video/BV1zR4y1t7Wj?p=33&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da
\ No newline at end of file
https://www.bilibili.com/video/BV1zR4y1t7Wj?p=35&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录