![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 72
davidsu33
这个作者很懒,什么都没留下…
展开
-
golang中协程同步sync.waitGroup
//使用golang中sync.WaitGroup来实现协程同步package mainimport ( "fmt" "net/http" "io/ioutil" "time" "os" "sync")var waitGroup = new(sync.WaitGroup)func download(i int ){ url := fmt.Sprintf("http:原创 2016-10-23 19:28:57 · 6558 阅读 · 0 评论 -
go语言defer的用法
//defer用来推出前延迟操作,一个函数中可以有多个//defer的执行顺序和栈的行为是一样的package mainimport "fmt"func deferTest(x int) int{ if(x==0){ return 0 } defer fmt.Printf("x=%d\n", x) //说明一个函数中可以有多个defer,defer的执行顺序跟栈的行为一原创 2016-10-20 21:14:14 · 774 阅读 · 0 评论 -
golang中encoding/xml的使用注意事项
1.使用xml.Name的第一个名称作为整个XML文档的根节点。2.凡是需要解析的XML内容,需要使用结构体的tag属性,反射出xml的特性,包含xml的名称,是否是属性、注释等。3.凡是需要解析的节点,结构体的成员名称,首字母必须要大些4.可以直接跳跃解析的父节点(该父节点只存在逻辑结构,并不存储任何数据或者属性),可以使用>来表征。golang的文档上的例子ty原创 2016-11-11 11:20:53 · 6259 阅读 · 2 评论 -
go语言协程认识-1
//关于go语言协程通道的使用//1.通道可以带缓存,也可以不带//2.不带缓存的,不管是读还是写都会阻塞//3.带缓存的,如果缓存溢出,就会阻塞//4.make(chan int,1)和make(chan int)是不一样的,第一种通道内写入两个数据会阻塞,第二种写入就会阻塞//5.如果协程在阻塞,但是主程已经退出执行,则认为程序死锁//6.如果程序除了主程之外(没有一个协程),处于原创 2016-10-20 09:35:16 · 1196 阅读 · 0 评论 -
Go语言的学习教程地址,可以直接down到本地使用
https://tour.go-zh.org/welcome/1原创 2016-10-19 17:18:33 · 546 阅读 · 0 评论 -
golang-encoding模块学习
//Golang中encoding的用法package mainimport ( "encoding/binary" "bytes" "fmt" "encoding/hex")func main() { pi := 3.1415926 buf := bytes.Buffer{} //使用原创 2016-11-09 22:54:50 · 4538 阅读 · 0 评论 -
go结构体中String接口的实现为什么是结构体而不是指针
package main//Go语言组合的思想很重,数据之间如果要传承//需要将数组组合进来//Go有指针的概念,但是并没有指针运算符import ( "fmt")const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2)//go语言的接口type Animal interface { name() (strin原创 2016-10-19 15:17:30 · 1633 阅读 · 0 评论 -
go结构体的学习和使用
package main//Go语言组合的思想很重,数据之间如果要传承//需要将数组组合进来//Go有指针的概念,但是并没有指针运算符import ( "fmt")const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2)//go语言的接口type Animal interface { name() (strin原创 2016-10-19 15:16:38 · 4317 阅读 · 0 评论 -
golang中结构体的初始化方法(new方法)
type Rect struct { x, y float64 width, height float64}初始化方法:rect1 := new(Rect)rect2 := &Rect{}rect3 := &Rect{0, 0, 100, 200}rect4 := &Rect{width:100,转载 2016-10-19 09:07:30 · 751 阅读 · 0 评论 -
go接口扩展注意事项
简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为。 如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明。Interface是一个方法的集合,它里面没有其他类型变量,而且Method只用定义原型 不用实现①接口定义1.命名时习惯以"er"结尾,如Printer Reader Wr转载 2016-10-27 21:21:18 · 713 阅读 · 0 评论 -
go语言实现接口,接受者应该是传值还是传引用(传引用兼容传值)
/*go语言中给接口赋值的时候,对象如果是值(对于引用的接受者处理不了)如果是指针,则可以自动实现值的处理 */package mainimport "fmt"//定义Integer类型type Integer inttype LessAddInf interface{ Less(n Integer) bool Add(n Integer) Integer}fun原创 2016-10-27 20:57:22 · 3188 阅读 · 1 评论 -
golang windows程序获取管理员权限(UAC )
golang windows程序获取管理员权限(UAC )在windows上执行有关系统设置命令的时候需要管理员权限才能操作,比如修改网卡的禁用、启用状态。双击执行是不能正确执行命令的,只有右键以管理员身份运行才能成功。为解决此问题,花了很长时间找了各种方法,最终找到一个简单的方法,双击也能执行成功了。过程如下:1> Go get github.com/akavel/rsrc2转载 2016-11-07 22:52:05 · 3089 阅读 · 2 评论 -
go语言的字符和字符串
Go语言中的字符在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。下面用一个简单的程序来演示字符类型:package mainimport ( "fmt" "reflect")func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := refl转载 2016-10-26 20:58:18 · 1227 阅读 · 0 评论 -
go语言Reader包封
package mainimport ( "io" "os" "strings")type rot13Reader struct { r io.Reader}//rot13将数字+13转化为字母,对该数字减13即可//通过这方方法,将其做成一个包封器(wrapper)func (this * rot13Reader)Read(bytes []byte) (n int,原创 2016-10-26 20:57:25 · 537 阅读 · 0 评论 -
go语言 grequests+goquery 简单爬虫,使用多协程并发爬取
/*下载工具*/package mainimport ( "fmt" //go语言版本的jquery "github.com/PuerkitoBio/goquery" "os" "sync" "strings" //go语言版本的request "github.com/levigross/grequests" "time" "strconv")var wg sync原创 2016-10-26 08:38:41 · 4292 阅读 · 0 评论 -
使用go语言来下载蜻蜓fm上的歌曲,效率感觉还行
package mainimport ( "encoding/json" "errors" "fmt" "net/http" "io" "os" "path" "io/ioutil" "sync")//翻唱FM的URL:http://www.qingting.fm/#/vchannels/136962/programs/5659080//翻唱FM的ajax地址:htt原创 2016-10-31 21:17:04 · 1794 阅读 · 0 评论