自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anglemiku_v

年少无畏 ------- Github: https://github.com/HatsuneMikuV

  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 Go 语言圣经 Display,一个递归的值打印器

12.3 Display,一个递归的值打印器知识点1.reflect包提供了反射功能,定义两个类型Type和Value2.Type表示一个Go类型. 它是一个接口3.一个Value,有很多方法来检查其内容, 无论具体类型是什么4.对象图中含有回环,Display将会陷入死循环代码章节中的例子func test_Display() { e, _ := eva...

2018-10-23 21:22:18 445

原创 Go 语言圣经 第十二章 反射

/*第十二章 反射Go语言提供了一种反射机制,能够在运行时更新变量和检查它们的值、调用它们的方法和它们支持的内在操作,而不需要在编译时就知道这些变量的具体类型。反射是一个复杂的内省技术,不应该随意使用fmt包提供的字符串格式功能,encoding/json和encoding/xml,text/template和html/template包这些包内部都是用反射技术实现的,但是它们...

2018-10-18 14:00:48 207

原创 Go 语言圣经 第十一章 测试

/**第十一章 测试Go语言的测试技术是相对低级的它依赖一个go test测试命令和一组按照约定方式编写的测试函数,测试命令可以运行这些测试函数编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示例文档*/11.1 go test知识点1.go test命令是一个按照一定的约定和组织来测试代码的程序2.有三种类型的函数:测试函数、基准测试(benchmark...

2018-10-11 09:34:15 224

原创 Go 语言圣经 第十章 包和工具

/** 第十章 包和工具Go语言开源包,它们可以通过 http://godoc.org 检索*/10.1 包简介知识点1.包系统设计的目的是为了简化大型程序的设计和维护工作2.每个包一般都定义了一个不同的名字空间用于它内部的每个标识符的访问3.Go语言三个特性1->包必须在每个文件的开头显式声明,2->禁止包的环状依赖,3->编译...

2018-08-29 17:39:53 171

原创 Go 语言圣经 9.8 Goroutines和线程

9.8 Goroutines和线程知识点1.每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈, 这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量2.goroutine会以一个很小的栈开始其生命周期,一般只需要2KB3.和OS线程不太一样的是一个goroutine的栈大小并不是固定的4.goroutine的栈的最大值有1GB5.Go的...

2018-08-20 11:37:42 188

原创 Go 语言圣经 9.6 竞争条件检测 & 9.7 示例: 并发的非阻塞缓存

9.6 竞争条件检测知识点1.Go的runtime和工具链为我们装备了动态分析工具–竞争检查器(the race detector)9.7 示例: 并发的非阻塞缓存知识点1.duplicate suppression(重复抑制/避免)代码章节中的例子func test_memoizing() { m := memo....

2018-08-19 10:35:58 281

原创 Go 语言圣经 9.5 sync.Once初始化

9.5 sync.Once初始化知识点1.初始化延迟到需要的时候再去做就是一个比较好的选择–懒加载2.所有并发的问题都可以用一致的、简单的既定的模式来规避3.多个goroutine都需要访问的变量,使用互斥条件来访问代码章节中的例子//Icon用到了懒初始化(lazy initialization)var icons map[string]ima...

2018-07-26 23:49:01 423

原创 Go 语言圣经 9.4 内存同步

9.4 内存同步知识点1.在一个独立的goroutine中,每一个语句的执行顺序是可以被保证的2.所有并发的问题都可以用一致的、简单的既定的模式来规避3.多个goroutine都需要访问的变量,使用互斥条件来访问代码章节中的例子func test_memory() { var x, y int go func() { ...

2018-07-24 10:23:53 242

原创 Go 语言圣经 9.2 sync.Mutex互斥锁 9.3 sync.RWMutex读写锁

9.2 sync.Mutex互斥锁知识点1.一个只能为1和0的信号量叫做二元信号量(binary semaphore)2.这种互斥很实用,而且被sync包里的Mutex类型直接支持3.Lock和Unlock的调用是在所有路径中都严格配对的4.一个deferred Unlock即使在临界区发生panic时依然会执行5.defer调用只会比显式地调用Unlock成本高那么一点...

2018-07-23 10:38:42 392

原创 Go 语言圣经 8.1 Goroutines

/* 第八章 Goroutines和Channels 1.并发程序指同时进行多个任务的程序 2.goroutine 3.channel */8.1 Goroutines知识点1.在Go语言中,每一个并发的执行单元叫作一个goroutine2.新的goroutine会用go语句来创建,go语句会使其语句中的函数在一个新创建...

2018-07-12 10:30:44 326

原创 Go 语言圣经 8.2 示例: 并发的Clock服务

8.2 示例: 并发的Clock服务知识点1.网络编程是并发大显身手的一个领域2.go语言的net包,提供编写一个网络客户端或者服务器程序的基本组件代码func test_clock() { listener, err := net.Listen("tcp", "localhost:8000") if err != nil { ...

2018-07-10 18:06:01 965

原创 Go 语言圣经 8.3 示例: 并发的Echo服务

8.3 示例: 并发的Echo服务知识点1.让服务使用并发不只是处理多个客户端的请求,甚至在处理单个连接时也可能会用到代码func test_echo() { listener, err := net.Listen("tcp", "localhost:8000") if err != nil { log.Fatal(err) ...

2018-07-06 09:32:17 565

原创 Go 语言圣经 8.4 Channels

8.4 Channels知识点1.goroutine是Go语言程序的并发体的话,channels则是它们之间的通信机制2.一个channel是一个通信机制,它可以让一个goroutine通过它给另一个goroutine发送值信息3.channel的零值也是nil4.两个相同类型的channel可以使用==运算符比较,同样可以和nil比较5.channel有发送和接受两个主要...

2018-07-05 10:11:21 369

原创 Go 语言圣经 8.5 并发的循环

8.5 并发的循环知识点1.和switch语句稍微有点相似,也会有几个case和最后的default选择支2.每一个case代表一个通信操作(在某个channel上进行发送或者接收)并且会包含一些语句组成的一个语句块3.一个接收表达式可能只包含接收表达式自身,或者包含在一个简短的变量声明中4.select会等待case中有能够执行的case时去执行,执行后,其他通信是不会执行...

2018-07-04 11:30:33 520

原创 Go 语言圣经 8.6 并发的web爬虫

8.6 并发的web爬虫知识点1.用bfs(广度优先)算法来抓取整个网站2.每一个彼此独立的抓取命令可以并行进行IO,最大化利用网络资源代码func test_web_crawler() { //初步11111 //crawl_one() //优化并发数量22222 //第二个问题是这个程序永远都不会终止,即使它已经爬到了所有...

2018-07-03 11:22:07 642

原创 Go 语言圣经 9.1 竞争条件

9.1 竞争条件知识点1.在一个线性(就是说只有一个goroutine的)的程序中,程序的执行顺序只由程序的逻辑来决定2.一个特定类型的一些方法和操作函数,对于某个类型来说,如果其所有可访问的方法和操作都是并发安全的话,那么类型便是并发安全的3.在一个程序中有非并发安全的类型的情况下,我们依然可以使这个程序并发安全4.导出包级别的函数一般情况下都是并发安全的5.竞争条件指的...

2018-06-29 09:12:19 697

原创 Go 语言圣经 7.15 补充几点

7.15 补充几点知识点1.对于接口设计的一个好的标准就是 ask only for what you need2.有更少和更简单方法(经常和io.Writer或 fmt.Stringer一样只有一个)的更小的接口。当新的类型出现时,小的接口更容易满足3.一个接口是解耦这两个包的一个好方式4.接口只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要—...

2018-06-29 09:11:11 188

原创 Go 语言圣经 7.14 示例: 基于标记的XML解码

7.14 示例: 基于标记的XML解码知识点1.2.3.代码章节中样例func test_mark_xml() { file, err := os.Open("issues2.html") if err != nil { fmt.Println(err) return } dec...

2018-06-28 09:22:36 155

原创 Go 语言圣经 7.13 类型分支

7.13 类型分支知识点1.Go语言查询一个SQL数据库的API会干净地将查询中固定的部分和变化的部分分开2.在Exec函数内部,它会将每一个参数值转换成它的SQL字面量符号代码章节中样例func test_typeBranch() { db, err := sql.Open("test", "testone") if err !...

2018-06-27 09:59:40 329

原创 Go 语言圣经 7.12 通过类型断言查询接口

7.12 通过类型断言查询接口知识点1.2.3.代码章节中样例func test_assertions_findInterface() { //急需补充^_^^_^^_^}——不足之处,欢迎补充——备注《Go 语言圣经》学习记录所使用的GO版本是1.8学习记录所使用的编译器工具为GoLand学习记录所使用的...

2018-06-27 09:58:51 183

原创 Go 语言圣经 7.11 基于类型断言识别错误类型

7.11 基于类型断言识别错误类型知识点1.PathError的结构保护了内部的错误组件2.如果错误消息结合成一个更大的字符串,当然PathError的结构就不再为人所知代码章节中样例func test_assertions_error() { //1.PathError的结构保护了内部的错误组件 _, err := os.Open...

2018-06-26 21:09:50 187

原创 Go 语言圣经 7.10 类型断言

7.10 类型断言知识点1.如果断言类型检查成功,会得到具体的值,否则跑出panic异常2.对一个接口类型的类型断言改变了类型的表述方式,改变了可以获取的方法集合(通常更大),但是它保护了接口值内部的动态类型和值的部分3.如果断言操作的对象是一个nil接口值,那么不论被断言的类型是什么这个类型断言都会失败4.如果类型断言出现在一个预期有两个结果的赋值操作中,这个操作不会在失败的...

2018-06-25 09:51:25 122

原创 Go 语言圣经 7.9 示例: 表达式求值

7.9 示例: 表达式求值知识点1.2.3.代码1.章节中样例2.练习 7.133.练习 7.144.练习 7.155.练习 7.16func test_expression() { //小弟初学水平有限,急需大神补充^_^^_^^_^}——不足之处,欢迎补充——备注《Go 语言圣经》学习记录所使用的GO版...

2018-06-25 09:50:50 1111

原创 Go 语言圣经 7.8 error接口

7.8 error接口知识点1.承载errorString的类型是一个结构体而非一个字符串,这是为了保护它表示的错误避免粗心(或有意)的更新2.每个New函数的调用都分配了一个独特的和其他错误不相同的实例代码章节中样例func test_error() { fmt.Println(errors.New("EOF") == errors.Ne...

2018-06-22 15:24:47 126

原创 Go 语言圣经 7.7 http.Handler接口

7.7 http.Handler接口知识点1.单一使用handler处理2.聚合使用handlers处理3.http.HandlerFunc是一个类型,实现了接口http.Handler方法的函数类型4.net/http包提供了一个全局的ServeMux实例DefaultServerMux代码1.章节中样例2.练习 7.113.练习 7.12f...

2018-06-21 20:36:09 404

原创 Go 语言圣经 7.1 接口是合约

/* 第七章 接口1.接口类型是对其它类型行为的抽象和概括 2.Go语言中接口类型的独特之处在于它是满足隐式实现的 */7.1 接口是合约知识点1.接口合约就像ObjC的继承,继承父类的方法并重新实现,因此可以被合约原函数调用代码1.章节中样例2.练习 7.13.练习 7.24.练习 7.3func test_convention...

2018-06-20 19:59:41 358

原创 Go 语言圣经 7.2 接口类型

7.2 接口类型知识点1.接口类型具体描述了一系列方法的集合, 而实现这个方法的具体类型是这个接口类型的实例2.io.Writer类型是用的最广泛的接口之一,因为它提供了所有的类型写入bytes的抽象3.接口类型可以组合定义,成为一个集合方法代码1.章节中样例2.练习 7.43.练习 7.5func test_interface_type() ...

2018-06-19 19:23:56 267

原创 Go 语言圣经 7.3 实现接口的条件

7.3 实现接口的条件知识点1.表达一个类型属于某个接口只要这个类型实现这个接口2.即使具体类型有其它的方法也只有接口类型暴露出来的方法会被调用到3.因为接口类型被称为空接口类型,因此可以将任意值赋给接口类型代码章节中样例func test_interface_condition() { os.Stdout.Write([]byte("...

2018-06-15 14:13:26 186

原创 Go 语言圣经 8.10 示例: 聊天服务

8.10 示例: 聊天服务代码func test_ex_chat() { listener, err := net.Listen("tcp", "localhost:8000") if err != nil { log.Fatal(err) } go broadcaster() for { conn, er...

2018-06-14 20:18:31 430

原创 Go 语言圣经 8.9 并发的退出

8.9 并发的退出知识点1.Go语言并没有提供在一个goroutine中终止另一个goroutine的方法2.利用select操作可以使其他操作被取消,并且可以将取消时的延迟从几百毫秒降低到几十毫秒代码章节中样例练习 8.11func test_concurrent_exit() { c := os.Stdin go func() ...

2018-06-13 22:57:38 376

原创 Go 语言圣经 8.8 示例: 并发的目录遍历

8.8 示例: 并发的目录遍历知识点1.利用并发遍历并计算文件大小2.利用select,优化打印文件大小3.利用channel设置最大信号量,来防止打开文件过多代码func test_concurrent_directory() { // Determine the initial directories. //------33333计算大小...

2018-06-12 10:38:10 358

原创 Go 语言圣经 8.7 基于select的多路复用

8.7 基于select的多路复用知识点1.和switch语句稍微有点相似,也会有几个case和最后的default选择支2.每一个case代表一个通信操作(在某个channel上进行发送或者接收)并且会包含一些语句组成的一个语句块3.一个接收表达式可能只包含接收表达式自身,或者包含在一个简短的变量声明中4.select会等待case中有能够执行的case时去执行,执行后,其他...

2018-06-11 12:28:42 767

原创 Go 语言圣经 7.6 sort.Interface接口

7.6 sort.Interface接口知识点1.sort包内置的提供了根据一些排序函数来对任何序列排序的功能2.Go语言的sort.Sort函数不会对具体的序列和它的元素做任何假设3.Go使用了一个接口类型sort.Interface来指定通用的排序算法和可能被排序到的序列类型之间的约定4.一个内置的排序算法需要三个东西:序列的长度,表示两个元素比较的结果,一种交换两个元素的...

2018-06-08 15:31:34 489

原创 Go 语言圣经 7.5 接口值

7.5 接口值1.有两部分组成:一个具体的类型,一个此类型的值2.也被称为动态类型和动态值3.一个接口值可以持有任意大的动态值4.一个接口上的调用必须使用动态分配5.接口值得动态类型如果是可以比较的,即可以作为map的key或者switch的语句操作数一个不包含任何值的nil接口值和一个刚好包含nil指针的接口值是不同的代码章节中样例func test...

2018-06-07 14:59:10 164

原创 Go 语言圣经 7.4 flag.Value接口

7.4 flag.Value接口在本章,我们会学到另一个标准的接口类型flag.Value是怎么帮助命令行标记定义新的符号的。代码章节中样例练习 7.6: 对tempFlag加入支持开尔文温度练习 7.7: 解释为什么帮助信息在它的默认值是20.0没有包含°C的情况下输出了°Cfunc main() { //7.4 flag.Value接口 test...

2018-04-28 17:11:25 559 1

转载 iOS视图成像理论及性能优化

iOS不是一蹴而就的,其中参杂了无数先驱的心血与智慧。在我们享受着iPhone的便捷时,其实我们忽略了很多细节,视图成像就是这样

2017-11-27 18:05:37 1015

原创 雪花飘落动画-帧动画系列

SHSnowflakesAnimation---雪花飘落动画-帧动画系列雪花立体反转,可改变x,y,z三个不同方向反转效果-可自行拓展雪花路线由贝塞尔曲线绘制而成-可自行更改路线

2017-10-26 12:41:54 798

原创 菜单分栏tableView

类似半糖、美丽说主页与QQ音乐歌曲列表布局效果,实现不同菜单的左右滑动切换,同时支持类似tableview的顶部工具栏悬停(既可以左右滑动,又可以上下滑动)。兼容下拉刷新,上拉加载更多。

2017-10-26 12:36:15 364

原创 原图绘制新图,字符串绘制图片

#import #import #import #define SCREENWIDTH ([UIScreen mainScreen].bounds.size.width)#define SCREENHEIGHT ([UIScreen mainScreen].bounds.size.height)//根据原有图片    绘制一个全屏宽,

2017-04-21 10:59:32 624

原创 关于B站播放器ijkPlayer的集成和遇到的bug(持续回复解答,ios)(QQ:479069761)

ijkPlayer 编译和实现播放增加分片播放协议concat七牛播放器和ijkplayer播放器的冲突解决

2017-03-09 18:07:19 8470 4

iOS的UI基础关于协议的简单介绍

初学对于协议的简单了解介绍。(iOS Xcode6.3环境下,内存管理方式是MRC)

2015-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除