01 2021 档案

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