摘要:
练习6.1: 为bit数组实现下面这些方法 阅读全文
摘要:
Go语言圣经-Panic异常1.当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)2.不是所有的panic异常都来自运行时,直接调用内置的panic函数也会引发panic异常;panic函数接受任何值作为参数。3.由于panic会引起程序的崩溃 阅读全文
摘要:
1.只需要在调用普通函数或方法前加上关键字defer,就完成了defer所需要的语法。当defer语句被执行时,跟在defer后面的函数会被延迟执行。直到包含该defer语句的函数执行完毕时,defer后的函数才会被执行,不论包含defer语句的函数是通过return正常结束,还是由于panic导致 阅读全文
摘要:
1.参数数量可变的函数称为为可变参数函数,例子就是fmt.Printf和类似函数2.参数列表的最后一个参数类型之前加上省略符号“...”3.虽然在可变参数函数内部,...int 型参数的行为看起来很像切片类型,但实际上,可变参数函数和以切片作为参数的函数是不同的 类型不同:fmt.Printf("% 阅读全文
摘要:
练习5.13: 修改crawl,使其能保存发现的页面,必要时,可以创建目录来保存这些页面。只保存来自原始域名下的页面。假设初始页面在golang.org下,就不 要保存vimeo.com下的页面。 阅读全文
摘要:
Go语言圣经-匿名函数1.拥有函数名的函数只能在包级语法块中被声明,通过函数字面量(function literal),我们可绕过这一限制,在任何表达式中表示一个函数值2.通过这种方式定义的函数可以访问完整的词法环境(lexical environment),这意味着在函数中定义的内部函数可以引用该 阅读全文
摘要:
Go语言圣经-错误 1.panic异常。panic是来自被调函数的信号,表示发生了某个已知的bug 2.任何进行I/O操作的函数都会面临出现错误的可能 3.错误是软件包API和应用程序用户界面的一个重要组成部分,程序运行失败仅被认为是几个预期的结果之一 4.那些将运行失败看作是预期结果的函数,它们会 阅读全文
摘要:
Go语言圣经-函数多返回值1.在Go中,一个函数可以返回多个值2.许多标准库中的函数返回2个值,一个是期望得到的返回值,另一个是函数出错时的错误信息3.如果一个函数将所有的返回值都显示的变量名,那么该函数的return语句可以省略操作数。这称之为bare return。 练习 5.5: 实现coun 阅读全文
摘要:
练习 5.1: 修改findlinks代码中遍历n.FirstChild链表的部分,将循环调用visit,改成递归调用。 练习 5.2: 编写函数,记录在HTML树中出现的同名元素的次数。 练习 5.3: 编写函数输出所有text结点的内容。注意不要访问<script>和<style>元素,因为这些 阅读全文
摘要:
Go语言圣经-文本和HTML模板 练习 4.14: 创建一个web服务器,查询一次GitHub,然后生成BUG报告、里程碑和对应的用户信息。 1.查看下文档godoc net/http |grep HandleFunc func HandleFunc(pattern string, handler 阅读全文
摘要:
练习 4.12: 流行的web漫画服务xkcd也提供了JSON接口。例如,一个 https://xkcd.com/571/info.0.json 请求将返回一个很多人喜爱的571编号的详细描述。 下载每个链接(只下载一次)然后创建一个离线索引。编写一个xkcd工具,使用这些离线索引,打印和命令行输入 阅读全文
摘要:
Go语言圣经-结构体 1.结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体 2.通常一行对应一个结构体成员,成员的名字在前类型在后,不过如果相邻的成员类型如果相同的话可以被合并到一行 3.如果结构体成员名字是以大写字母开头的,那么该成员就是导出的;这是Go语言导出规则决定的。一个结 阅读全文
摘要:
练习 4.8: 修改charcount程序,使用unicode.IsLetter等相关的函数,统计字母、数字等Unicode中不同的字符类别。 练习 4.9: 编写一个程序wordfreq程序,报告输入文本中每个单词出现的频率。在第一次调用Scan前先调用input.Split(bufio.Scan 阅读全文
摘要:
1.Slice(切片)代表变长的序列,序列中每个元素都有相同的类型,一个slice类型一般写作[]T,其中T代表slice中元素的类型;slice的语法和数组很像,只是没有固定长度而已,slice的底层确实引用一个数组对象 2.内置的len和cap函数分别返回slice的长度和容量 3.s[i:j] 阅读全文
摘要:
go语言圣经-复合数据类型 1.以不同的方式组合基本类型可以构造出来的复合数据类型 2.四种类型——数组、slice、map和结构体 3.数组是由同构的元素组成——每个数组元素都是完全相同的类型——结构体则是由异构的元素组成的 4.slice和map则是动态的数据结构,它们将根据需要动态增长 go语 阅读全文
摘要:
go语言圣经-复数 1.我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。两种精度的复数类型:complex64和complex128,分别对应float32和float64两种浮点数精度 2.complex函数用于构建复数,real和imag函数分别返回 阅读全文
摘要:
练习 3.1: 如果f函数返回的是无限制的float64值,那么SVG文件可能输出无效的多边形元素(虽然许多SVG渲染器会妥善处理这类问题)。修改程序跳过无效的多边形。 练习 3.2: 试验math包中其他函数的渲染图形。你是否能输出一个egg box、moguls或a saddle图案? 练习 3 阅读全文
摘要:
go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是一个编译时的属性 3.句法块是由花括弧所包含;我们可以把块(block)的概念推广到包括其他声明的群 阅读全文
摘要:
1.解决包级变量的依赖顺序,然后按照包级变量声明出现的顺序依次初始化 2.包中含有多个.go源文件,它们将按照发给编译器的顺序进行初始化 3.init初始化函数,在每个文件中的init初始化函数,在程序开始执行时按照它们声明的顺序被自动调用 4.每个包在解决依赖的前提下,以导入声明的顺序初始化,每个 阅读全文
摘要:
1.每个包都有一个全局唯一的导入路径 2.按照惯例,一个包的名字和包的导入路径的最后一个字段相同 练习 2.2: 写一个通用的单位转换程序,用类似cf程序的方式从命令行读取参数,如果缺省的话则是从标准输入读取参数,然后做类似Celsius和Fahrenheit的单位转换,长度单位可以对应英尺和米,重 阅读全文
摘要:
go语言圣经-声明1.四种类型的声明语句:var、const、type和func,分别对应变量、常量、类型和函数实体对象的声明2.包一级声明语句声明的名字可在整个包对应的每个源文件中访问,局部声明的名字就只能在函数内部很小的范围被访问 go语言圣经-变量1.var 变量名字 类型 = 表达式2.零值 阅读全文
摘要:
Go语言圣经-web服务 1.Web服务程序,标准库里的方法已经帮我们完成了大量工作 2.main函数将所有发送到/路径下的请求和handler函数关联起来,/开头的请求其实就是所有发送到当前站点上的请求,服务监听8000端口 3.发送到这个服务的“请求”是一个http.Request类型的对象,这 阅读全文
摘要:
go语言圣经-并发获取多个URL 1.GO最新奇的特性就是对并发编程的支持,goroutine和channel 2.goroutine是一种函数的并发执行方式,而channel是用来在goroutine之间进行参数传递 go function则表示创建一个新的goroutine,并在这个新的goro 阅读全文
摘要:
1.主要使用net/http和io/ioutil包 2.http.Get函数是创建HTTP请求的函数,resp这个结构体中,Body字段包括一个可读的服务器响应流 3.ioutil.ReadAll函数从response中读取到全部内容,resp.Body.Close关闭resp的Body流 4.用o 阅读全文
摘要:
1.常量声明的值必须是一个数字值、字符串或者一个固定的boolean值。2.常量声明和变量声明一般都会出现在包级别3.[]color.Color{...}生成的是一个slice切片和gif.GIF{...}生成的是一个struct结构体这两个表达式就是我们说的复合声明4.struct是一组值或者叫字 阅读全文
摘要:
从标准输入中读取数据 1.if语句条件两边也不加括号,但是主体部分需要加{} 2.map存储了键/值(key/value)的集合,对集合元素,提供常数时间的存、取操作,map[string]int ==> key的类型string和value的类型int 3.内置函数make创建空map, coun 阅读全文
摘要:
2018年3月28日 记录: location = /uri =开头表示精确匹配,只有完全匹配上才能生效。location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。location ~ pattern ~开头表示区分大小写的正则匹配。location ~* pattern 阅读全文
摘要:
去年的事 , 随便记记 2017年11月6日 记录: 获取包的选择状态: dpkg --get-selections [package] dpkg --get-selections|grep nginx 完全卸载nginx: apt-get --purge remove nginx apt-get 阅读全文
摘要:
去年的事,随便记记 2017年12月11日 记录: nginx缓存:ngx_http_proxy_module 网页内容缓存,日志缓存,打开文件缓存,fastcgi缓存proxy_cache_path /tmp/nginx/ levels=1:2 keys_zone=nginx_cache:20m 阅读全文
摘要:
去年的事,随便记记 2017年3月15日 记录: nginx限制请求频率: server外面加上: limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 里面加上: limit_req zone=one burst=5; 解释: 超过频 阅读全文
摘要:
去年的事,随便记记 2017年3月31日 记录: nginx的负载均衡: weight=3的意思是每5个请求,有3个去了187服务器 upstream mail.sina.net { server 60.28.228.xxx weight=3; server 60.28.228.xxx; } ser 阅读全文
摘要:
Linux diff比较两个目录的不同: diff dir1 dir2 -urNaq -a --text Treat all files as text. -u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified[统一] co 阅读全文
摘要:
1.编译 go build hello.go 2.go get gopl.io/ch1/helloworld 命令,就会从网上获取代码,并放到对应目录中 下载的代码会放在$GOPATH/src/gopl.io/ch1/helloworld目录 3.Go语言不需要在语句或者声明的末尾添加分号,除非一行 阅读全文
摘要:
https://books.studygolang.com/gopl-zh/ go语言圣经 1.Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”。 2.Go语言中和并发编程相关的特性是全新的也是有效的,同时对数据抽象和面向对象编程的支持也很灵活。Go语言同时还集成了自动垃圾收集技术用 阅读全文
摘要:
下载目录:https://studygolang.com/dl32位选 go1.10.linux-386.tar.gz64位选 go1.10.linux-amd64.tar.gz uname -a查看本机位数,注意查看本机系统位数i386对应的是32位系统、而i686是i386的一个子集,x86_6 阅读全文
摘要:
前提:redis允许远程连接,不需要密码 1.执行set命令,保存字符串,value 是一条cron规则的形式2.设置备份文件的目录到cron目录3.设置备份文件的文件名成root4.save保存文件,直接把字符串中的cron规则写入了文件5.cron定时执行,远程脚本里面各种操作 阅读全文
摘要:
wget http://download.redis.io/releases/redis-4.0.8.tar.gztar -zxvf redis-4.0.8.tar.gzmake完成后就会放在了src目录里面了Examples: ./redis-server (run the server with 阅读全文
摘要:
Order Deny,Allow的用法:影响最终判断结果的只有两点:1. order语句中allow、deny的先后顺序,最后的是最优先的;2. allow、deny语句中各自包含的范围。 常用:Order Deny,AllowDeny from all //禁止所有Allow from 61.13 阅读全文
摘要:
1 || $ln=='$-1'){ break; } } if(empty($queue)){ $delSecond++; var_dump($second); sleep(1); //发送完之后删掉邮件文件,延迟几十秒再删 if(is_dir($emlDir)... 阅读全文
摘要:
批量删除群发列表批量删除邮箱地址(传递以逗号分隔的字符串如 21,22 或者传递一维数组如 id[]=21&id[]=22)(使用array_keys和array_values直接转二维数组成一维数组)(批量删除sql语句使用in实现,delete from mass_list_detail{tid 阅读全文