网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
Go语言接口和方法
因为几乎任何东西都可加以方法,几乎任何东西都可满足某界面。一个展示的例子是http包定义的Handler界面。任何物件实现了Handler都可服务HTTP请求。__typeHandlerinterface{ServeHTTP(*Conn,*Request)}ResponseWriter本身是个界面,它提供一些可访问的方...
阅读全文
16. go语言有指针 没有指针运算
指针内其实就是保存了一个变量地址。__varp*int这行代码声明了一个int类型的指针p__i:=42p=&i&符号是取地址符,&i代表的是变量i的内存地址。__fmt.Println(*p)//打印指针p的值*p=21//修改指针p的值通过指针控制变量的值的变化。这也就是通常所说的“间接引用”或“非直接引用”。看一...
阅读全文
14. switch 的条件写的有点灵活,不过风格还是go的一贯风格
switch是很容易理解的,先来个代码,运行起来,看看你的操作系统是什么吧。__packagemainimport("fmt""runtime")funcmain(){fmt.Print("Gorunson")switchos:=runtime.GOOS;os{case"darwin":fmt.Println("OSX...
阅读全文
11. for循环 go语言只有for循环
Go只有一种循环结构——for循环。基本的for循环包含三个由分号分开的组成部分:初始化语句:在第一次循环执行前被执行循环条件表达式:每轮迭代开始前被求值后置语句:每轮迭代后被执行初始化语句一般是一个短变量声明,这里声明的变量仅在整个for循环语句可见。如果条件表达式的值变为false,那么迭代将终止。__packag...
阅读全文
28. go语言没有类 却可以在结构体或任意类型定义方法
在go语言中没有类。可是,是有方法的。给结构体定义方法,在对应的func和方法名之间,加上方法的接收者就可以了。比如,我们定义了一个结构体__typeVertexstruct{X,Yfloat64}希望Vertex有一个abs()方法,就这样写__func(v*Vertex)Abs()float64{returnmat...
阅读全文
Go 读取命令参数的几种方式
微信截图_20171129195400.png一名初学者,想要尽快熟悉Go语言特性,所以以操作式的学习方法为主,比如编写一个简单的数学计算器,读取命令行参数,进行数学运算。本文讲述使用三种方式讲述Go语言如何接受命令行参数,并完成一个简单的数学计算,为演示方便,最后的命令行结果大概是这样的:__input./calca...
阅读全文
go语言的单元测试
简单单元测试直接上栗子吧main.go__package测试funcAdd(a,bint)int{returna+b}main_test.go__package测试import"testing"funcTestAdd(t*testing.T){sum:=Add(1,2)ifsum==3{t.Log("theresult...
阅读全文
go语言的命令行操作
gobuildgobuild命令主要是用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。gocleangoclean命令是用来移除当前源码包里面编译生成的文件,这些文件包括gofmtgofmt命令主要是用来帮你格式化所写好的代码文件。__比如我们写了一个格式很糟糕的test.go文件,我们只需要使用f...
阅读全文
Go语言中的map并发读写问题
初学Go语言,在使用内置数据结构map的时候遇到一个非常严重的问题。在我的应用场景下,服务端需要每隔一段时间定时从数据库中读取一批数据加载到内存中,这样客户端需要请求相关数据时可以不从数据库中读取,而是直接从内存中获取,大大提高了响应速度。我采用了map来作为缓存数据结构,请求过来直接通过键查找的方式获取map中的数据...
阅读全文
Go语言·听说你想让程序运行的更快?
>>迁移自CSDN:>原文:[http://bravenewgeek.com/so-you-wanna-go->fast/](https://link.jianshu.com?t=http://bravenewgeek.com/so-you-wanna-go->fast/)到现在为止,我已经忘记了我在写什么,但我确定这...
阅读全文
go语言的一些陷阱
>虽然go语言使用起来方便简单,但他有很多特性是比较与众不同的,在不了解的情况下,编码时候就会产生很多莫名其妙的bug。channelchannel示例代码这里的channel默认是无缓冲的,但是有三个线程往里面写,而函数返回的时候只从中读取了一个,根据channel的特性,另外两个线程(goroutine个人别称线程...
阅读全文
go time包的使用
类型time.Time{}时间类型,包含了秒和纳秒以及Location__walluint64//秒extint64//纳秒loc*Locationtime.Month()typeMonthint月份.定义了十二个月的常量WeekdaytypeWeekdayint周,定义了一周的七天Durationtime.Durat...
阅读全文
go Goroutine和Channel的使用总结
GoroutineGoroutine可以被看作是Go语言特有的应用程序线程,__传统的线程通讯:将数据存放在共享内存中,供多个线程中的程序访问。虽然在思路省操作非常简单,但却使并发控制变得相对麻烦。只有做到了各种约束和限制,才可以使这种方法实施。__go语言处理方法:不推荐使用共享内存区的方法传递数据,作为代替,因该优...
阅读全文
go Go和HTTPS
HTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URIscheme(抽象标识符体系),句法类同http...
阅读全文