Go语言中文网 为您找到相关结果 11

go类型断言

go里面的类型断言写法: x.(T) 其中x为interface{}类型 T是要断言的类型。 类型断言有个非常好的使用场景:当某个类型为interface{}的变量,真实类型为A时,才做某件事时,这时可以使用类型断言 下面有个例子。只有当某个interface{}的类型 存储的是int时才打印出来。 package main import ( "fmt" "math/rand" "time" ) func main() { var v interface{} r := rand.New(rand.NewSource(time.Now().UnixNano())) for i := 0; i < 10; i++{ v = i if (r.Intn(100) % 2) == 0 { v = "h...阅读全文

博文 2015-05-19 23:00:02 guonaihong

Go 系列教程 —— 20. 并发入门

欢迎来到我们 [Golang 系列教程](https://studygolang.com/subject/2)的第 20 篇。 **Go 是并发式语言,而不是并行式语言**。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。 ## 并发是什么? 并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。 我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。这个例子就是典型的并发。这个人能够一下搞定跑步和系鞋带两件事,即立即处理多个任务。 ## 并行是什么?并行和并发有何区别? 并行是指同时处理多个任务。这听起来和并发差不多,但其实完全不同。 我们同样用这个跑步的例子来帮助理解。假如这个人在慢跑时,还在用他的 iPod...阅读全文

博文 2018-02-03 12:25:58 heyulong

浅析GO语言中如何优雅地中断定时任务

问题描述 现在我们创建了一个定时器,能定时的去做某件事,并且在执行时间超时的时候,能把这个定时器关掉。例如需要收集一周的日志,创建一个定时任务去收集日志,每5秒钟执行一次,一周的时间过后需要停掉这个定时任务。 标准库Ticker 标准库提供里的Ticker类,主要功能是定时重复的去做某件事情,如果没有设定超时,它会一直执行下去。常见的写法如下: t := time.NewTicker(3 * time.Second) timeout := time.After(10 * time.Second) go func() { for { <-t.C ... } }() <-timeout ... 注意到这个Ticker对象是无法关闭的,好的,你可能会发现Ticker类提供了Stop方法。但是我们看...阅读全文

大话机器学习(一)--Go for it!

本系列教程适合对机器学习一无所知,甚至文科森哦。反正不会有数学公式,I promise!教程基于sklearn的python机器学习库。 打开机器学习的面纱,就是这样。 首先要有利器。工欲善其事必先利其器。看我下面这个文章吧,下载一下这个软件,然后我们就可以开始了。 http://blog.csdn.net/qtlyx/article/details/49742483 1.什么是机器学习? 数据挖掘,深度学习,模式识别,大数据挖掘。一切听起来很深奥的样子。其实呢,就是一句话:分类和预测!说的那么好听就是在做这两件事。 2.线性回归 马上开始!有一种东西叫做最小二乘法,不知道也没有关系。  话说有这样一张图,上面有这么多点点是已知的,现在问题来了,告诉你横轴的值是0.56的点,纵轴的值应该是...阅读全文

博文 2016-02-23 15:00:03 qtlyx

归并排序及go语言实现

归并排序的基本思想 将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复进行下去,最后得到一个长度为n的有序序列。 综上可知: 归并排序其实要做两件事: (1)“分解”——将序列每次折半划分。 (2)“合并”——将划分后的序列段两两合并后排序。 归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。 如 设有数列{6,202,100,301,38,8,1} 初始状态:6,202,100,301,38,8,1 第一次归并后:{6,202},{100,301},{8,38},{1},比较次数:3; 第二次归并后:{6,100,202,301...阅读全文

博文 2016-04-15 16:00:01 zhaoguoguang

Go 面试每天一篇(第 6 天)

点击上方蓝色“Golang来啦”关注我哟加个“星标”,天天 15 分钟,一起学 Go给大家推荐一首歌,个人感觉不错,适合边听边码,静静的!言归正传,昨天的题目比较简单,但答案很丰富,值的一看。参考答案及解析:编译不通过 invalid operation: sm1 == sm2这道题目考的是结构体的比较,有几个需要注意的地方:结构体只能比较是否相等,但是不能比较大小。相同类型的结构体才能够进行比较,结构体是否相同不但与属性类型有关,还与属性顺序相关,sn3 与 sn1 就是不同的结构体;1 sn3:= struct {2 name string3 age int4 }{age:11,name:"qq"}如果 struct 的所有成员都可以比较,则该 struct 就可以通过 == 或 != ...阅读全文

博文 2019-08-31 21:12:52 Golang来啦

用Golang写一个搜索引擎(0x05)--- 文本相关性排序

上面我们已经说过了一些倒排索引的东西,并且也知道了如何来实现一个倒排索引完成检索功能,那么检索完了以后如何排序呢,这一篇简单的说一下倒排索引的文本相关性排序,因为排序实在是太复杂了,我们这里就说说文本的相关性排序,而且是最简单的TD-IDF排序,之后有机会可以再说说整个搜索的排序算法有些什么。 文本相关性排序 首先明白几个概念: Term,分词以后最小的单位,比如用Golang写一个搜索引擎,分词以后就是用,golang,写,一个,搜索引擎,那么每一个词就是一个Term。 TF(Term Frequency),Term在文章中出现的频率,就是当前term在文章中出现的频率,就是term次数/总term数,比如上文中的搜索引擎这个term的TF就是1/5,TF越高那么这篇文章中的这个词就越重要...阅读全文

博文 2017-02-09 08:18:07 吴yh坚

我可能是个假程序员!50个程序猿笑话程序猿最烦两件事

程序员最烦的是什么?50个程序猿笑话程序猿最烦两件事。没错,就是这2件事情……梁健也烦! 1、程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。 2、程序猿的读书历程:x语言入门—>x语言应用实践—>x语言高阶编程—>x语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。 3、还没上大学的时候,高三暑假,跑到家那边的图书城想买传说中的C++的书,然后看到一本C#,我一看,嘿,这个++还写得挺艺术的,重叠起来了,于是把C#买了回来…… 4、问:程序猿最讨厌康熙的哪个儿子?答:胤禩,因为他是八阿哥(bug)。 5、有一天,程序猿们突然发现他们要涨的工资掉到井里啦!大家都很害怕,连忙一个吊着一个,从树上伸到井里去捞工资。正好他们摸到工资...阅读全文

博文 2018-09-11 13:39:04 Java_fenxiang

Go基础: 关于文章更新及代码存放地点

各位朋友们大家好!~ 我是bavdu,相信很多人是比较看好现在的容器趋势的, 想必你也关注到各大厂都在拥抱Go语言, 好多架构都在往Go上进行转移。而且Go的并发编程、执行速度也被支持的很好, 那么我相信你还会有更多的见解~ 我开设这个专栏的目的就是帮助大家快速的掌握go语言,但并不是通过学习之后你就能够变成高手, 这个专栏的目的就是让你快速的进行入门, 而不是通往精通. 我会在 ·每周1、3、5·更新文章每次一篇, 前后衔接, 思考题等我会在文章的尾部体现,文章中使用的代码及代码片段我会放在https://github.com/bavdu/golang_study里面,你们可以点击进行查看及下载. 最后有三句话送给大家: 人生有两件事要做: 一是活着, 二是活好 工作有两件事要做: 一是思...阅读全文

博文 2018-12-22 23:34:47 bavdu

写于 2019-01-01 凌晨

2018年过去了,算是比较坎坷的一年。 虽然艰难了点,总算是完成了人生几件大事,算是一大节点。 进入区块链领域 SpringCloud 体系的实践 将Golang作为最终的语言 搞定了k8s架构 开始Remote Work 顿悟人生 解决小孩上学问题 2019 将是值得期待的一年 未来未可知,但是有两件事需要完成。 技术沉淀 开始创业 感谢2018,感谢互联网上无私奉献的人们...阅读全文

博文 2019-01-01 04:34:44 luax

golang中SO_REUSEADDR和SO_REUSEPORT

SO_REUSEADDR和SO_REUSEPORT具体作用是什么详情可以参考这篇文章: https://www.jianshu.com/p/a23b7e8a4c6a 这里贴一些关键信息: SO_REUSEADDR 作用一 在为Socket B设置了SO_REUSEADDR以后,判断冲突的方式就变了。只要地址不是正好(exactly)相同,那么多个Socket就能绑定到同一ip上。比如0.0.0.0和192.168.0.100,虽然逻辑意义上前者包含了后者,但是0.0.0.0泛指所有本地ip,而192.168.0.100特指某一ip,两者并不是完全相同,所以Socket B尝试绑定的时候,不会再报EADDRINUSE,而是绑定成功。 作用二 绑定TIME_WAIT状态的地址 一个非常现实的问题...阅读全文

博文 2019-10-15 23:32:53 aside section ._1OhGeD