master 333668716b19 cached
23 files
16.1 KB
8.1k tokens
13 symbols
1 requests
Download .txt
Repository: unknwon/go-fundamental-programming
Branch: master
Commit: 333668716b19
Files: 23
Total size: 16.1 KB

Directory structure:
gitextract_g72g70p2/

├── .gitignore
├── README.md
└── lectures/
    ├── 01_hello.go
    ├── 02_basic_structure.go
    ├── 03_type-alias.go
    ├── 06_bubble_sort.go
    ├── 08_exchange_key-value.go
    ├── 09_closure.go
    ├── lecture1.md
    ├── lecture10.md
    ├── lecture11.md
    ├── lecture12.md
    ├── lecture13.md
    ├── lecture14.md
    ├── lecture15.md
    ├── lecture2.md
    ├── lecture3.md
    ├── lecture4.md
    ├── lecture5.md
    ├── lecture6.md
    ├── lecture7.md
    ├── lecture8.md
    └── lecture9.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so

# Folders
_obj
_test

# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out

*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*

_testmain.go

*.exe
temp.go

================================================
FILE: README.md
================================================
《Go 编程基础》
==========================

借用《Go Web 编程》一书中的话,出本套教程并不代表我自身的能力有多强,而是我愿意将自己在学习过程中积累到的知识分享给大家,并结合自己遇到的一些坑爹经历来讲解如何处理各种奇葩问题,从而更好地帮助广大的和潜在的 Go 语言爱好者。

### 基本信息

- **教程讲师**:[无闻](http://weibo.com/Obahua)
- **教程简介**:《Go 编程基础》是一套针对 Google 出品的 Go 语言的视频语音教程,主要面向 Go 语言新手级别的学习者。
- **开发环境**:Go 语言 1.0.3-1.8.* 版本
- **开发工具**:Sublime Text 2-3
- **开发系统**:Windows 7 64 位
- **其它说明**:每堂课都会建立一个文件(例如:`lecture1.md`)作为课堂笔记。课堂笔记中里面包含了该堂课所涵盖的知识点以及知识点开始讲解的时间点,方便学习者快速定位要了解的部分,节省不必要浪费的时间。此外,如果教程中因口误或其它原因使学习者产生迷惑的部分,同样会在课堂笔记中进行补充说明。
- **收录网站**:
	- [哔哩哔哩](https://space.bilibili.com/2030700139/channel/collectiondetail?sid=278107&ctype=0)
	- [YouTube](https://www.youtube.com/playlist?list=PLDZk3eV9LVFV08Wy0A0jW2YRErn-FBrCP)
	- [网易云课堂](http://study.163.com/course/introduction.htm?courseId=306002#/courseDetail)
	- 强烈谴责 **51CTO 学院** 购买会员才能观看
- **课程下载**:
	- [腾讯微云](https://share.weiyun.com/7UsYOQmS)
	- [百度网盘](https://pan.baidu.com/s/1yeT0OVTrmQMME8C7Zwg9aQ)(提取码:z8uj)

### 教程大纲

| 课时数 | 课时标题 | 在线播放 |
|:-----:|:--------|:-------|
|第 1 课|[Go 开发环境搭建](lectures/lecture1.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1334y1U7cH/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421012&courseId=306002)|
|第 2 课|[Go 基础知识](lectures/lecture2.md)|[哔哩哔哩](https://www.bilibili.com/video/BV13L4y1z7ht/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421013&courseId=306002)|
|第 3 课|[类型与变量](lectures/lecture3.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1p3411y7os/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421014&courseId=306002)|
|第 4 课|[常量与运算符](lectures/lecture4.md)|[哔哩哔哩](https://www.bilibili.com/video/BV13u411o7VR/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421015&courseId=306002)|
|第 5 课|[控制语句](lectures/lecture5.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1bu411o7gT/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421016&courseId=306002)|
|第 6 课|[数组 array](lectures/lecture6.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1134y1m7pS/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421017&courseId=306002)|
|第 7 课|[切片 slice](lectures/lecture7.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1aP4y1L7hm/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421018&courseId=306002)|
|第 8 课|[map](lectures/lecture8.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1cq4y1R7sA/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421019&courseId=306002)|
|第 9 课|[函数 function](lectures/lecture9.md)|[哔哩哔哩](https://www.bilibili.com/video/BV18L411g77S/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421020&courseId=306002)|
|第 10 课|[结构 struct](lectures/lecture10.md)|[哔哩哔哩](https://www.bilibili.com/video/BV11F411e7ic/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421021&courseId=306002)|
|第 11 课|[方法 method](lectures/lecture11.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1gr4y117T4/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421022&courseId=306002)|
|第 12 课|[接口 interface](lectures/lecture12.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1sF411e7HJ/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421023&courseId=306002)|
|第 13 课|[反射 reflection](lectures/lecture13.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1FU4y1c7ZP/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421024&courseId=306002)|
|第 14 课|[并发 concurrency](lectures/lecture14.md)|[哔哩哔哩](https://www.bilibili.com/video/BV15h41187nx/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421025&courseId=306002)|
|第 15 课|[项目与坑](lectures/lecture15.md)|[哔哩哔哩](https://www.bilibili.com/video/BV1PQ4y1S7RU/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421026&courseId=306002)|

### 授权许可

除特别声明外,本套教程中的内容使用 CC BY-SA 3.0 License(创作共用 署名-相同方式共享 3.0 许可协议)授权,代码遵循 BSD 3-Clause License(3 项条款的 BSD 许可协议)。

### 鸣谢

- [polaris](http://blog.studygolang.com/)
- [Asta谢](https://github.com/astaxie)
- [昌雄](https://github.com/insionng)
- Hubery
- 悠然

### 参考资料

- [《Go Web 编程》](https://github.com/astaxie/build-web-application-with-golang)([Asta谢](https://github.com/astaxie))
- [《The Way to Go》](http://download.csdn.net/download/kukucckku/4394839) [中文版《Go 入门指南》](https://github.com/Unknwon/the-way-to-go_ZH_CN)(Ivo Balbaert)
- [Go (programming language)](http://en.wikipedia.org/wiki/Go_%28programming_language%29)(维基百科)
- [《Go 学习笔记》](http://bbs.gocn.im/thread-8-1-1.html)(雨痕)
- [《Go 语言编程》](http://bbs.gocn.im/thread-153-1-1.html)(晨笛)
- [《Golang 常见的坑和编程模式》](http://pan.baidu.com/share/link?shareid=2570649749&uk=822891499)([刘奇](http://weibo.com/chuangyiyongpin))


================================================
FILE: lectures/01_hello.go
================================================
package main

import (
	"fmt"
)

func main() {
	fmt.Println("Hello world!你好,世界!")
}


================================================
FILE: lectures/02_basic_structure.go
================================================
// 当前程序的包名
package main

// 导入其它的包
import std "fmt"

// 常量的定义
const PI = 3.14

// 全局变量的声明与赋值
var name = "gopher"

// 一般类型声明
type newType int

// 结构的声明
type gopher struct{}

// 接口的声明
type golang interface{}

// 由 main 函数作为程序入口点启动
func main() {
	std.Println("Hello world!你好,世界!")
}


================================================
FILE: lectures/03_type-alias.go
================================================
package main

import (
	"fmt"
)

type (
	byte int8
	rune int32
	文本   string
)

func main() {
	var b 文本
	b = "中文啊亲"
	fmt.Println("文本b:" + b)
}


================================================
FILE: lectures/06_bubble_sort.go
================================================
package main

import (
	"fmt"
)

func main() {
	// 未排序数组
	sort := [...]int{1, 7, 4, 2, 5}
	fmt.Println(sort)

	// 冒泡排序,由大到小
	num := len(sort)
	for i := 0; i < num; i++ {
		for j := i + 1; j < num; j++ {
			// 比较大小
			if sort[i] < sort[j] {
				temp := sort[i]
				sort[i] = sort[j]
				sort[j] = temp
			}
		}
	}

	fmt.Println(sort)
}


================================================
FILE: lectures/08_exchange_key-value.go
================================================
package main

import (
	"fmt"
)

func main() {
	m1 := map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "e",
		6: "f", 7: "g", 8: "h", 9: "i", 0: "j"}
	fmt.Println("m1", m1)
	m2 := make(map[string]int)
	for i, v := range m1 {
		m2[v] = i
	}
	fmt.Println("m2", m2)
}


================================================
FILE: lectures/09_closure.go
================================================
package main

import (
	"fmt"
)

func main() {
	var fs = [4]func(){}

	for i := 0; i < 4; i++ {
		defer fmt.Println("defer i = ", i)
		defer func() { fmt.Println("defer_closure i = ", i) }()
		fs[i] = func() { fmt.Println("closure i = ", i) }
	}

	for _, f := range fs {
		f()
	}
}


================================================
FILE: lectures/lecture1.md
================================================
第 1 课:Go 开发环境搭建
==========================

### 基本信息

- **课程时长**:20:02
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1334y1U7cH/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421012&courseId=306002)

### 课程大纲

	[00:00] Go 基本介绍
	[04:10] 安装 Go 语言
	[05:00] Go 环境变量与工作目录
	[07:27] Go 命令简介
	[11:06] godoc 建立本地文档
	[15:40] Sublime Text 安装与配置
	[18:05] "Hello world!"
	
### 补充说明

- 如果对安装 Sublime Text 部分不是很理解,完整教程请参考 [博文](http://my.oschina.net/Obahua/blog/110767)

### 相关链接

- [Go 在谷歌:以软件工程为目的的语言设计](http://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering)
- [go-wiki](https://code.google.com/p/go-wiki/wiki/Projects)
- [Go Walker](http://gowalker.org/)
- [Go Language Resources](http://go-lang.cat-v.org/library-bindings)
- [Golang 相关 QQ 群](https://docs.google.com/spreadsheet/lv?key=0AqIvOG5Y0CJ6dFFJV0JwSm1kbEtEdmg5Nk1uZndzakE)
- Go 源码安装:[参考链接](https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/01.1.md)
- Go 标准包安装:[下载地址](http://www.golangtc.com/download)
- [CHM手册](https://github.com/astaxie/godoc)
- 其它 IDE 安装方案:[参考链接](https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/01.4.md)
- 下载 Sublime Text:[官方网站](http://www.sublimetext.com/)
- 安装 gosublime(破解版可能无法安装):[安装指令](http://my.oschina.net/Obahua/blog/110767)
- [Sublime Text 2 入门及技巧](http://lucifr.com/2011/08/31/sublime-text-2-tricks-and-tips/)
- [Go 初学者常问的问题 FAQ](http://bbs.studygolang.com/thread-67-1-1.html)

### 课程链接

- [第 2 课:Go 基础知识](lecture2.md)


================================================
FILE: lectures/lecture10.md
================================================
第 10 课:结构 struct
==========================

### 基本信息

- **课程时长**:38:57
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV11F411e7ic/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421021&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[08:28] 结构的定义与使用
	[12:45] 使用字面值初始化
	[18:05] 匿名结构与字段
	[23:43] 结构间的赋值与比较
	[26:10] 嵌入结构
	[31:25] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 暂无说明

### 相关链接

- 暂无链接

### 课程链接

- [第 9 课:函数 function](lecture9.md)
- [第 11 课:方法 method](lecture11.md)


================================================
FILE: lectures/lecture11.md
================================================
第 11 课:方法 method
==========================

### 基本信息

- **课程时长**:23:13
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1gr4y117T4/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421022&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[06:30] 方法的声明与使用
	[13:05] 类型别名与方法
	[16:30] Method Value 与 Method Expression
	[18:43] 方法名称冲突与字段访问权限
	[21:20] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 暂无说明

### 相关链接

- 暂无链接

### 课程链接

- [第 10 课:结构 struct](lecture10.md)
- [第 12 课:接口 interface](lecture12.md)


================================================
FILE: lectures/lecture12.md
================================================
第 12 课:接口 interface
==========================

### 基本信息

- **课程时长**:28:36
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1sF411e7HJ/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421023&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:30] 接口的定义与基本操作
	[10:43] 嵌入接口
	[12:45] 类型断言
	[13:58] 空接口与 type switch
	[18:48] 接口转换
	[22:07] 接口使用注意事项

### 补充说明

- 暂无说明

### 相关链接

- [评: 为什么我不喜欢 Go 语言式的接口](http://www.ituring.com.cn/Article/37642)

### 课程链接

- [第 11 课:方法 method](lecture11.md)
- [第 13 课:反射 reflection](lecture13.md)


================================================
FILE: lectures/lecture13.md
================================================
第 13 课:反射 reflection
==========================

### 基本信息

- **课程时长**:31:33
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1FU4y1c7ZP/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421024&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:28] 反射基本操作
	[12:10] 反射匿名或嵌入字段
	[16:10] 修改目标对象
	[24:10] 动态调用方法
	[28:15] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 视频第 22 分 33 秒,代码第 23 行应该为 `if v.Kind() != reflect.Ptr || !v.Elem().CanSet() {`。

### 相关链接

- 暂无链接

### 课程链接

- [第 12 课:接口 interface](lecture12.md)
- [第 14 课:并发 concurrency](lecture14.md)


================================================
FILE: lectures/lecture14.md
================================================
第 14 课:并发 concurrency
==========================

### 基本信息

- **课程时长**:47:52
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV15h41187nx/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421025&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[03:17] 初窥 goroutine
	[08:45] channel 概述
	[20:20] 多个 goroutine 打印
	[29:00] select 概述
	[47:17] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 暂无说明

### 相关链接

- [Concurrency Is Not Parallelism](http://vimeo.com/49718712) 【[PPT](http://concur.rspace.googlecode.com/hg/talk/concur.html#landing-slide)】
- [Go语言_并发篇](http://www.cnblogs.com/yjf512/archive/2012/06/06/2537712.html)
- [goroutine背后的系统知识](http://www.sizeofvoid.net/goroutine-under-the-hood/)
- [Advanced Go Concurrency Patterns](http://v.youku.com/v_show/id_XNTcyMTA4MTM2.html)
- [What exactly does runtime.Gosched do?](http://stackoverflow.com/questions/13107958/what-exactly-does-runtime-gosched-do)

### 课程链接

- [第 13 课:反射 reflection](lecture13.md)
- [第 15 课:项目与坑](lecture15.md)


================================================
FILE: lectures/lecture15.md
================================================
第 15 课:项目与坑
==========================

### 基本信息

- **课程时长**:28:56
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1PQ4y1S7RU/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421026&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[06:32] 完整项目结构
	[15:15] slice 与 append 的坑
	[19:45] time.Format 的坑
	[23:02] range 与闭包的坑

### 补充说明

- 暂无说明

### 相关链接

- 暂无链接

### 课程链接

- [第 14 课:并发 concurrency](lecture14.md)


================================================
FILE: lectures/lecture2.md
================================================
第 2 课:Go 基础知识
==========================

### 基本信息

- **课程时长**:14:21
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV13L4y1z7ht/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421013&courseId=306002)

### 课程大纲

	[00:00] 课堂笔记的使用方法
	[01:36] Go内置关键字和注释方法
	[02:08] Go程序的一般结构
	[07:25] 包的导入
	[09:43] package别名与省略调用
	[11:45] 可见性规则
	[13:53] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- gosublime 调出内置命令行快捷键 Ctrl+B(windows)

### 相关链接

- 暂无链接

### 课程链接

- [第 1 课:Go 开发环境搭建](lecture1.md)
- [第 3 课:类型与变量](lecture3.md)


================================================
FILE: lectures/lecture3.md
================================================
第 3 课:类型与变量
==========================

### 基本信息

- **课程时长**:32:37
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1p3411y7os) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421014&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:57] 基本类型
	[11:25] 类型零值
	[16:30] 类型别名
	[19:20] 变量的声明与赋值
	[29:20] 类型转换
	[32:13] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 从严格意义上讲 type newInt int, 这里 newInt 并不能说是 int 的别名,而只是底层数据结构相同,在这里称为自定义类型,在进行类型转换时仍旧需要显式转换,但 byte 和 rune 确确实实为 uint8 和 int32 的别名,可以相互进行转换。有关于自定义类型将在后面的教程中进行讲解。
- Var() 变量组可以在函数体内用于声明局部变量,感谢 Hubery 指出,但并不建议这样使用。

### 相关链接

- 暂无链接

### 视频错误
	[04:30]
		var组只能声明全局变量,不能在函数体中使用。[x]
		var组只能声明全局变量,也可以在函数体中使用。[√]


### 课程链接

- [第 2 课:Go 基础知识](lecture2.md)
- [第 4 课:常量与运算符](lecture4.md)


================================================
FILE: lectures/lecture4.md
================================================
第 4 课:常量与运算符
==========================

### 基本信息

- **课程时长**:28:21
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV13u411o7VR/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421015&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:35] 常量的定义
	[11:30] 常量的枚举
	[17:05] 运算符
	[27:45] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- [《Go 编程基础》视频第 4 课: 常量与运算符 笔记](http://www.cnblogs.com/ghj1976/archive/2013/04/24/3039578.html)

### 相关链接

- 暂无链接

### 课程链接

- [第 3 课:类型与变量](lecture3.md)
- [第 5 课:控制语句](lecture5.md)


================================================
FILE: lectures/lecture5.md
================================================
第 5 课:控制语句
==========================

### 基本信息

- **课程时长**:28:33
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1bu411o7gT/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421016&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[03:51] 基础知识补充(指针、递增递减语句)
	[06:45] if判断语句
	[10:32] for循环语句
	[15:50] switch选择语句
	[21:26] 跳转语句
	[27:42] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 如果在 if 的条件语句两边加上括号不会报错,但在 gofmt 时会自动消除

### 相关链接

- 暂无链接

### 课程链接

- [第 4 课:常量与运算符](lecture4.md)
- [第 6 课:数组 array](lecture6.md)


================================================
FILE: lectures/lecture6.md
================================================
第 6 课:数组 array
==========================

### 基本信息

- **课程时长**:22:01
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1134y1m7pS/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421017&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:23] array的定义
	[10:02] 指向数组的指针和指针数组
	[12:30] 数组之间的比较
	[14:22] 使用new创建数组
	[16:09] 多维数组
	[18:45] 冒泡排序
	
### 作业答案

- 暂无作业

### 补充说明

- for 循环中声明的变量在每次循环结束都会消失,作用域只在当次循环

### 相关链接

- 暂无链接

### 课程链接

- [第 5 课:控制语句](lecture5.md)
- [第 7 课:切片 slice](lecture7.md)


================================================
FILE: lectures/lecture7.md
================================================
第 7 课:切片 slice
==========================

### 基本信息

- **课程时长**:34:51
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1aP4y1L7hm/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421018&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[03:15] slice 概述
	[05:20] 创建 slice
	[18:25] reslice 概述
	[23:00] append()与slice
	[29:55] copy()与slice
	[33:55] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 26:37 处的“数组” a 实际为切片,但不影响教程演示。若想其成为数组,应把 `[]` 改为 `[...]`。

### 相关链接

- 暂无链接

### 课程链接

- [第 6 课:数组 array](lecture6.md)
- [第 8 课:map](lecture8.md)


================================================
FILE: lectures/lecture8.md
================================================
第 8 课:map
==========================

### 基本信息

- **课程时长**:23:55
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1cq4y1R7sA/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421019&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[04:00] map 概述
	[05:10] 简单 map 的创建与使用
	[08:26] 复杂 map 与键值对操作
	[13:10] map 与 slice 的迭代操作
	[15:15] 元素类型为 map 的 slice
	[18:45] map 的间接排序
	[22:30] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 在开头的知识回顾中,reslice 的操作只是将 slice 指向底层的指针的值进行了调整,而未发生值的拷贝。
 
### 相关链接

- 暂无链接

### 课程链接

- [第 7 课:切片 slice](lecture7.md)
- [第 9 课:函数 function](lecture9.md)


================================================
FILE: lectures/lecture9.md
================================================
第 9 课:函数 function
==========================

### 基本信息

- **课程时长**:28:30
- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV18L411g77S/) [网易云课堂](http://study.163.com/course/courseLearn.htm?courseId=306002#/learn/video?lessonId=421020&courseId=306002)

### 课程大纲

	[00:00] 知识回顾
	[03:50] 函数概述
	[05:00] 函数的定义与使用
	[08:00] 不定长变参
	[10:52] 传递值类型和引用类型
	[13:20] 匿名函数与闭包
	[18:15] defer 用法
	[23:06] panic 与 recover
	[28:06] 课堂作业布置
	
### 作业答案

- 下堂课讲解

### 补充说明

- 暂无说明

### 相关链接

- 暂无链接

### 课程链接

- [第 8 课:map](lecture8.md)
- [第 10 课:结构 struct](lecture10.md)
Download .txt
gitextract_g72g70p2/

├── .gitignore
├── README.md
└── lectures/
    ├── 01_hello.go
    ├── 02_basic_structure.go
    ├── 03_type-alias.go
    ├── 06_bubble_sort.go
    ├── 08_exchange_key-value.go
    ├── 09_closure.go
    ├── lecture1.md
    ├── lecture10.md
    ├── lecture11.md
    ├── lecture12.md
    ├── lecture13.md
    ├── lecture14.md
    ├── lecture15.md
    ├── lecture2.md
    ├── lecture3.md
    ├── lecture4.md
    ├── lecture5.md
    ├── lecture6.md
    ├── lecture7.md
    ├── lecture8.md
    └── lecture9.md
Download .txt
SYMBOL INDEX (13 symbols across 6 files)

FILE: lectures/01_hello.go
  function main (line 7) | func main() {

FILE: lectures/02_basic_structure.go
  constant PI (line 8) | PI = 3.14
  type newType (line 14) | type newType
  type gopher (line 17) | type gopher struct
  type golang (line 20) | type golang interface
  function main (line 23) | func main() {

FILE: lectures/03_type-alias.go
  type byte (line 8) | type byte
  type rune (line 9) | type rune
  type 文本 (line 10) | type 文本
  function main (line 13) | func main() {

FILE: lectures/06_bubble_sort.go
  function main (line 7) | func main() {

FILE: lectures/08_exchange_key-value.go
  function main (line 7) | func main() {

FILE: lectures/09_closure.go
  function main (line 7) | func main() {
Condensed preview — 23 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (19K chars).
[
  {
    "path": ".gitignore",
    "chars": 259,
    "preview": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture spe"
  },
  {
    "path": "README.md",
    "chars": 5021,
    "preview": "《Go 编程基础》\n==========================\n\n借用《Go Web 编程》一书中的话,出本套教程并不代表我自身的能力有多强,而是我愿意将自己在学习过程中积累到的知识分享给大家,并结合自己遇到的一些坑爹经历来讲解如"
  },
  {
    "path": "lectures/01_hello.go",
    "chars": 84,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n)\n\nfunc main() {\n\tfmt.Println(\"Hello world!你好,世界!\")\n}\n"
  },
  {
    "path": "lectures/02_basic_structure.go",
    "chars": 280,
    "preview": "// 当前程序的包名\npackage main\n\n// 导入其它的包\nimport std \"fmt\"\n\n// 常量的定义\nconst PI = 3.14\n\n// 全局变量的声明与赋值\nvar name = \"gopher\"\n\n// 一般类"
  },
  {
    "path": "lectures/03_type-alias.go",
    "chars": 142,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n)\n\ntype (\n\tbyte int8\n\trune int32\n\t文本   string\n)\n\nfunc main() {\n\tvar b 文本\n\tb = \"中文啊亲\"\n\tfmt."
  },
  {
    "path": "lectures/06_bubble_sort.go",
    "chars": 335,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n)\n\nfunc main() {\n\t// 未排序数组\n\tsort := [...]int{1, 7, 4, 2, 5}\n\tfmt.Println(sort)\n\n\t// 冒泡排序,由"
  },
  {
    "path": "lectures/08_exchange_key-value.go",
    "chars": 266,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n)\n\nfunc main() {\n\tm1 := map[int]string{1: \"a\", 2: \"b\", 3: \"c\", 4: \"d\", 5: \"e\",\n\t\t6: \"f\", 7"
  },
  {
    "path": "lectures/09_closure.go",
    "chars": 282,
    "preview": "package main\n\nimport (\n\t\"fmt\"\n)\n\nfunc main() {\n\tvar fs = [4]func(){}\n\n\tfor i := 0; i < 4; i++ {\n\t\tdefer fmt.Println(\"def"
  },
  {
    "path": "lectures/lecture1.md",
    "chars": 1551,
    "preview": "第 1 课:Go 开发环境搭建\n==========================\n\n### 基本信息\n\n- **课程时长**:20:02\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/"
  },
  {
    "path": "lectures/lecture10.md",
    "chars": 514,
    "preview": "第 10 课:结构 struct\n==========================\n\n### 基本信息\n\n- **课程时长**:38:57\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video"
  },
  {
    "path": "lectures/lecture11.md",
    "chars": 531,
    "preview": "第 11 课:方法 method\n==========================\n\n### 基本信息\n\n- **课程时长**:23:13\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video"
  },
  {
    "path": "lectures/lecture12.md",
    "chars": 564,
    "preview": "第 12 课:接口 interface\n==========================\n\n### 基本信息\n\n- **课程时长**:28:36\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/vi"
  },
  {
    "path": "lectures/lecture13.md",
    "chars": 582,
    "preview": "第 13 课:反射 reflection\n==========================\n\n### 基本信息\n\n- **课程时长**:31:33\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/v"
  },
  {
    "path": "lectures/lecture14.md",
    "chars": 1012,
    "preview": "第 14 课:并发 concurrency\n==========================\n\n### 基本信息\n\n- **课程时长**:47:52\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/"
  },
  {
    "path": "lectures/lecture15.md",
    "chars": 445,
    "preview": "第 15 课:项目与坑\n==========================\n\n### 基本信息\n\n- **课程时长**:28:56\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1P"
  },
  {
    "path": "lectures/lecture2.md",
    "chars": 548,
    "preview": "第 2 课:Go 基础知识\n==========================\n\n### 基本信息\n\n- **课程时长**:14:21\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV"
  },
  {
    "path": "lectures/lecture3.md",
    "chars": 770,
    "preview": "第 3 课:类型与变量\n==========================\n\n### 基本信息\n\n- **课程时长**:32:37\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1p"
  },
  {
    "path": "lectures/lecture4.md",
    "chars": 543,
    "preview": "第 4 课:常量与运算符\n==========================\n\n### 基本信息\n\n- **课程时长**:28:21\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1"
  },
  {
    "path": "lectures/lecture5.md",
    "chars": 542,
    "preview": "第 5 课:控制语句\n==========================\n\n### 基本信息\n\n- **课程时长**:28:33\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1bu"
  },
  {
    "path": "lectures/lecture6.md",
    "chars": 532,
    "preview": "第 6 课:数组 array\n==========================\n\n### 基本信息\n\n- **课程时长**:22:01\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/B"
  },
  {
    "path": "lectures/lecture7.md",
    "chars": 570,
    "preview": "第 7 课:切片 slice\n==========================\n\n### 基本信息\n\n- **课程时长**:34:51\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/B"
  },
  {
    "path": "lectures/lecture8.md",
    "chars": 605,
    "preview": "第 8 课:map\n==========================\n\n### 基本信息\n\n- **课程时长**:23:55\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/video/BV1cq4"
  },
  {
    "path": "lectures/lecture9.md",
    "chars": 548,
    "preview": "第 9 课:函数 function\n==========================\n\n### 基本信息\n\n- **课程时长**:28:30\n- **在线观看**:[哔哩哔哩](https://www.bilibili.com/vide"
  }
]

About this extraction

This page contains the full source code of the unknwon/go-fundamental-programming GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 23 files (16.1 KB), approximately 8.1k tokens, and a symbol index with 13 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!