01 2021 档案
摘要:多态与空接口 多态 测试代码 package ch13 import ( "fmt" "testing" ) //定义一种类型 type Code string // 定义一个接口 type Programmer interface { WriteHelloWorld() Code } //定义一个
阅读全文
摘要:扩展与复用 复合 与其他主要编程语言的差异Go不支持继承,但可以通过复合的方式来复用 匿名类型嵌⼊ 与其他主要编程语⾔的差异 它不是继承,如果我们把“内部 struct ”看作⽗类,把“外部 struct” 看作⼦类, 会发现如下问题: 1. 不⽀持⼦类替换 2. ⼦类并不是真正继承了⽗类的⽅法 •
阅读全文
摘要:定义交互协议 接口与依赖 客户端与接口之间存在循环依赖的问题 Duck Type 式接口实现 Go 接口 与其他主要编程语⾔的差异 1. 接口为⾮⼊侵性,实现不依赖于借⼝定义 2. 所以接⼝的定义可以包含在接口使⽤者包内 接口变量 自定义类型 1. type IntConvertionFn func
阅读全文
摘要:面向对象编程 封装数据和行为 结构体定义 type Employee struct { Id string Name string Age int } 实例创建及初始化 e := Employee{"0", "Bob", 20} e1 := Employee{Name: "Mike", Age: 3
阅读全文
摘要:函数:一等公民 函数是⼀等公民 与其他主要编程语言的差异 1. 可以有多个返回值 2. 所有参数都是值传递:slice,map,channel 会有传引⽤的错觉 3. 函数可以作为变量的值 4. 函数可以作为参数和返回值 函数:可变参数及 defer 可变参数 func sum(ops ...int
阅读全文
摘要:字符串与字符编码 字符串 与其他主要编程语言的差异1. string 是数据类型,不是引用或指针类型2. string 是只读的 byte slice,len 函数可以它所包含的 byte 数3. string 的 byte 数组可以存放任何数据 Unicode UTF8 1. Unicode 是一
阅读全文
摘要:10丨Map 声明、元素访问及遍历 Map声明 m := map[string]int{"one": 1, "two": 2, "three": 3} m1 := map[string]int{} m1["one"] = 1 m2 := make(map[string]int, 10 /*Initi
阅读全文
摘要:09丨数组和切片 数组的声明 var a [3]int //声明并初始化为默认零值 a[0] = 1 b := [3]int{1, 2, 3} //声明同时初始化 c := [2][2]int{{1, 2}, {3, 4}} //多维数组初始化 数组元素遍历 与其他主要编程语⾔的差异 func Te
阅读全文
摘要:08丨条件和循环 编写结构化程序 循环 与其他主要编程语言的差异Go语言仅支持循环关键字for 代码示例 package ch5 import "testing" func TestWhileLoop(t *testing.T) { //while 的写法 m := 0 for m < 5 { t.
阅读全文
摘要:07丨运算符 算术运算符 比较运算符 用==比较数组 相同维数且含有相同个数元素的数组才可以比较 每个元素都相同的才相等 逻辑运算符 位运算符 与其他主要编程语言的差异&^按位置零 1 &^ 0 -- 1 1 &^ 1 -- 0 0 &^ 1 -- 0 0 &^ 0 -- 0 位运算符右边是1, 结
阅读全文
摘要:06丨数据类型 bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // alias for uint8 rune // alias for int32,represents a Un
阅读全文
摘要:面向对象 1 面向过程编程 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式优点:复杂的问题流程化,进而简单化缺点:可扩展性差 ''' 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:
阅读全文
摘要:05丨变量、常量以及与其他语言的差异 编写测试程序 1. 源码文件以 _test 结尾:xxx_test.go 2. 测试方法名以 Test 开头:func TestXXX(t *testing.T) {…} 变量赋值 与其他主要编程语言的差异 赋值可以进行自动类型推断 在一个赋值语句中可以对多个变
阅读全文
摘要:04丨编写第一个Go程序 开发环境构建 GOPATH 在 1.8 版本前必须设置这个环境变量 1.8 版本后(含 1.8)如果没有设置使⽤用默认值 在 Unix 上默认为 $HOME/go , 在 Windows 上默认为 %USERPROFILE%/go 在 Mac 上 GOPATH 可以通过修改
阅读全文
摘要:03丨Go 语言简介:历史背景、发展现状及语言特性 内容概述 软件开发的新挑战 1.多核硬件架构2.超大规模分布式计算集群3.Web模式导致的前所未有的开发规模和更新速度 Go的创始人 Go语言发展 简单 关键字少 高效 垃圾回收指针 生产力 复合Vs继承 云计算语言 区块链语言 准备开始Go冒险之
阅读全文
浙公网安备 33010602011771号