
Go
anod
这个作者很懒,什么都没留下…
展开
-
Go学习笔记:panic()和recover()
如何理解:1、调用panic函数相当于throw一个异常,逐层启动异常处理流程。在调用panic之前defer的操作会在调用panic后立即执行。2、调用recover函数相当于catch了异常,会中止异常处理流程,并可以返回这个异常。3、panic函数接受一个参数,任意类型,无返回值;4、recover函数没有参数,返回值就是异常本身;5、一般,recover函数放在defe原创 2015-03-09 18:49:00 · 889 阅读 · 0 评论 -
Go学习笔记:有意思的三个点儿
三个点儿就是这个 ...用途之一:为函数定义多个参数,比如:func x(args ...int){}//函数x接受任意数量的int参数用途之二:将切片拆散m := make([]int, 3)x(m...)//将切片m(含有3个int型元素)拆散成单个int型作为参数调用函数x第一种用途,是Go提供的语法原创 2015-03-10 17:51:42 · 4098 阅读 · 0 评论 -
Go学习笔记:数组和数组切片的行为
mark原创 2015-03-10 17:56:00 · 541 阅读 · 0 评论 -
Go学习笔记:多重赋值能用来干啥
Go支持多重赋值。比如:x,y:=1,2多重赋值能用来干啥,来个有意思的:1、交换两个变量的值:x,y:=1,2x,y=y,x//交换了2、将数组反序:x := [4]int{1, 2, 3, 4} fori, j := 0, len(x)-1; i x[i],x[j] = x[j], x[i]原创 2015-03-10 17:41:33 · 2050 阅读 · 0 评论 -
Go学习笔记:严格的数组
数组变得不太一样了。要求数组的长度必需在编译时是能确定的,也就是说,数组的元素个数必需是常量或常量表达式。比如java中可以这样:public int[] createArr(int x){return new int[x];}在Go中不能用这种方法创建数组,只能创建一个数组切片来达到目的。不过话说回来,数组切片也不错,还能随时往里增加东西:原创 2015-03-10 17:35:16 · 743 阅读 · 0 评论 -
Go学习笔记:关于defer
有几个要点:1、defer主要作用是用来做所谓的“善后”工作的,比如关闭文件、关闭网络连接、释放锁等等。有很多文章把defer放在异常处理中介绍,可能原因之一defer的出现极大改变了try-catch这种异常处理模式的复杂度(特别是嵌套的情况),代码变得更简洁了;2、在一个Go函数中,允许有多个被defer的操作。这些操作按后进先出的方式,在函数return之前执行;3、执行的顺序和原创 2015-03-09 18:12:37 · 1106 阅读 · 0 评论 -
Go学习笔记:匿名成员
开始没搞明白啥是匿名成员,看了好几个文章,总算明白了,至少自认为是。为啥需要匿名成员?得从OO说起。OO要说是现代的计算机编程语言中必需的部分了。不过不同的语言对于如何实现OO中的各种概念做法并不一样。Go对OO提供了支持,但采用的是一种简洁并且直接的办法,没有类似于Java中的extends、implements关键字,而是直接用匿名成员,并通过“委派”来实现。比如下面这些代码:原创 2015-03-12 14:20:59 · 1487 阅读 · 0 评论