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

<三> go 枚举

在go语言中,没有直接支持枚举的关键字,也就造成go没有直接枚举的功能。但是go提供另一种方法来实现枚举,那就是const+iota // 实现枚举例子 type State int // iota 初始化后会自动递增 const ( Running State = iota // value --> 0 Stopped // value --> 1 Rebooting // value --> 2 Terminated // value --> 3 ) func (this State) String() string { switch this { case Running: return "Running" case Stopped: return "Stopped" default:...阅读全文

博文 2015-11-20 09:00:01 a11101171

go语言25个关键字总结

var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制 chan用于channel通讯 type用于声明自定义类型 map用于声明map类型数据 range用于读取slice、map、channel数...阅读全文

博文 2014-10-04 19:26:29 T_star

golang中defer的执行

golang中defer的执行 大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用defer延迟关闭改资源,以免引起内存泄漏。例如: func do() (ok bool) { file,_ := os.Open("c:\a.txt") defer file.Close() // doSomething return ok } 我们可以在官方的文档中看到defer的执行顺序是逆序的,也就是先进后出的顺序: for i := 0; i < 5; i++ { defer fmt.Printf("%d ", i) } 打印结果是:4,3,2,1,0 那么再看这个例子: func deferRet(x,y int) ...阅读全文

博文 2014-10-04 19:26:10 wowzai

go - 继承

1 方法的继承 在go中没有继承的关键字,但是我们可以通过interface这个类型做出继承的效果,看如下代码,Car就继承了Start和Stop这两个方法 import ( "fmt" ) type Engine interface { Start() Stop() } type Car struct { Engine } func (this *Car) Start() { fmt.Println("Car->Start()") } func main() { fmt.Println("Start Main func()") car := new(Car) car.Start() } 2 成员变量的继承 相当与定义Person人这个类,然后定义男人Man继承人的姓名,年龄这个两个成员属性...阅读全文

博文 2015-11-16 17:00:01 a11101171

golang 中的 type switch 类型判断

golang 语言中 也有 类是 javascript 的 typeof 判断类型的 方法 比如 func (a interface{}){ //第一种 if inst,ok:=a.(TypeA);ok{ inst.MethodA() } //第二种 switch inst:=a.(type){ case TypeA: inst.MethodA() default: fmt.Println("unknow") } } a可能是任意类型 a.(某个类型) 返回两个值 inst 和 ok ,ok代表是否是这个类型,Ok如果是 inst 就是转换后的 类型 a.(type) type是关键字 结合switch case使用 TypeA(a) 是强制转...阅读全文

博文 2014-10-04 19:26:55 健哥大人

Golang 简单的启用一个线程

// code by shaoyongyang package main import ( "fmt" "time" ) func say(s string) { fmt.Println(s) } func main() { go say("who are you?") go say("who are you?1") fmt.Println(2) time.Sleep(1e9) } 好吧,我之前都在想为什么say方法里面没有任何输出,查了很多资料后发现,是因为程序已经结束运行了,启动的线程还在运行。 在最后面加入线程休眠时间就可以了。 启用一个线程仅仅 go say("see i am new thread") ,仅仅使用go关键字即...阅读全文

博文 2015-02-01 08:00:01 未来还没来

空接口(interface {})类型判断

空接口可以存储任意类型的数据,当需要判断到底是何种类型时,可以使用以下方法。 1 直接断言 比如我们收到一个类型为interface{}的变量unknown,可以通过如下代码直接断言是否为string类型: val, ok := unknow.(string) 如果返回ok为true,则变量unknown为string类型,同时返回一个val存储string类型的值。如果我们确定unknown为string类型,也可以不返回ok变量,直接强转获取其值: val := unknow.(string) 但是使用这种方法有一定的风险,如果不是string类型,会发生panic: panic: interface conversion: interface {} is int, not string...阅读全文

博文 2019-08-01 21:02:45 moonbamboo

Golang关键字—— if/else

Golang中,if/else 关键字用于条件判断,如果满足条件就做某事,否则做另一件事: if age >= 18 { fmt.Println("成年人") } else { fmt.Println("未成年") } 多重判断: if score >= 90 { fmt.Println("优秀") } else if score >= 70 { fmt.Println("良好") } else if score >= 60 { fmt.Println("一般") } else { fmt.Println("差") } Golang允许在条件判断语句里声明一个变量,该变量的作用域只在该条件逻辑块内: if score := 40; score >= 90 { fmt.Println("优秀:...阅读全文

博文 2015-05-21 10:00:00 nianhua

golang笔记-注释-标识符

Go语言注释 行注释://xxxxxx 块注释:/* xxxxxx */ Go语言关键字,严格区分大小写。 1.break 2.default 3.func 4.interface 5.select 6.case 7.defet 8.go 9.map 10.struct 11.chan 12.else 13.goto 14.package 15.switch 16.const 17.fallthrough 18.if 19.range 20.type 21.contiue 22.for 23.import 24.return 25.var Go语言预定义标识符 1.append 2.bool 3.byte 4.cap 5.close 6.complex 7.complex64 8.compl...阅读全文

博文 2016-04-09 23:00:01 golangerblog

golang expected declaration, found 'IDENT'

这个问题是因为:=只能在函数内部使用,如果声明全局变量需要使用var关键字 例如 func foo() { id := 1 } 如果声明为全局变量则需要这样声明 var id = 1 PS:Go中引入:=是为了减少一些临时变量的定义,所以一个好的习惯是:=只用来声明临时变量,对于一个函数中常用的变量还是使用var进行声明。 附: Short_variable_declarations $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2015-12-12 17:00:01 jiaolongdy

Go 1.4 Beta 1 发布

Go 1.4 Beta 1 发布,此版本是 Go 1.4 的 beta 版本,现已提供下载,反馈bug请前往这里。 此版本仅包括一个小的编程语言修改;对编译器做了重大修改,向后兼容 for-range loop 形式。此版本关键点在实现功能,改进垃圾收集器和为下个版本完整的收集器打好基础。 此版本还添加了新的工具,支持使用 go 命令生成构建时源代码。此版本支持 Android 和 Native Client(NaCl)的 ARM 处理器和 Plan 9 的 AMD64。 Go 1.4 最终版本计划在 2014 年 12 月 1 日发布,更多更新内容请看发行说明...阅读全文

博文 2014-11-01 01:00:01 mengyidan1988

golang中的接口与继承

接口 interface是关键字; 接口的力量:interface是只要你实现了接口定义的类型(方法),就可以作为接口的实例拿来用,在语言层面上不再需要其它的约束。 继承 在结构体中嵌入匿名类型成员,就可以继承匿名类型的方法。 不仅可以嵌入匿名类型成员,还可以嵌入匿名的接口,或者匿名的指针对象,是一种纯虚继承,继承的只是接口的规范,而实现还得靠自己...阅读全文

博文 2019-02-10 21:34:44 areece

超级简单ORM的实现方式

//根据传入的struct中定义的字段名自动小写首字母,查询得到的值自动插入struct中.当然也可以用tag查询,但是需要首先把tag取出来,然后做一个map把tag值和对应的field存储起来. func SelectOne(i interface{}, query string, a ...interface{}) { rows, err := db.Query(query, a...) if nil != err { log.Println(err) return } cols, err := rows.Columns() if nil != err { log.Println(err) return } is := ma...阅读全文

程序员自白:为什么我们能将月入五万活得像月薪五千

点击上方“CSDN”,选择“置顶公众号”关键时刻,第一时间送达!最近 IT 圈里流行着一个话题:月薪 5W 的程序员,活得却好似月薪 5K。究竟是什么原因,让表面上高收入的程序员生活得如此简约质朴呢?咱们在这里简单分析一下:原因一:穷说到穷,可能有人不服气了:都月薪 5W 了,怎么还能叫穷呢?我们这里所说的穷,更多的是指出身普通。至少在国内,没听说过有哪个富二代在苦逼写代码、改 Bug,绝大多数小伙伴们都是一身清贫地在北上广打拼。如果有幸达到税前月薪 5W,扣去个税和保险,剩下不过 3.5W。对于有房贷,有娃的程序员们,5W 的薪资真的不多,拿什么来奢侈?原因二:忙这个理由应该没有什么争议。互联网大厂的程序员们全年 996,天天对着电脑,谁还有时间关注时尚,谁还有时间逛街消费?原因三:圈子单...阅读全文

博文 2017-10-26 00:13:27 程序员小灰

Golang协程与通道整理

协程goroutine 不由OS调度,而是用户层自行释放CPU,从而在执行体之间切换。Go在底层进行协助实现 涉及系统调用的地方由Go标准库协助释放CPU 总之,不通过OS进行切换,自行切换,系统运行开支大大降低 通道channel 并发编程的关键在于执行体之间的通信,go通过通过channel进行通信 channel可以认为类似其他OS体系中的消息队列,只不过在go中原生支持,因而易用 消息队列有哪些值得关注的地方?常见问题包括创建、关闭或删除、阻塞、超时、优先级等,golang中也不例外。罗列如下: 可否探测队列是满或空?或者说是否可以不阻塞地尝试读写? 读阻塞和写阻塞时关闭会怎样? 关闭后未读取的消息会被抛弃? 往关闭的channel发送数据或读取数据会怎样? 怎样探测channel的...阅读全文

怎样才不浪费IP的价值?

当年的“我叫MT”迅速唤起了很多玩家小学时代集卡、打卡的热情,它有意思,也多少有点儿怀念的味道;而后至今不断推出的各式纯卡牌手游几乎“转瞬即逝”,甚至有不少难以突围到玩家面前。等到“刀塔传奇”推出,让卡牌游戏变得“活”了起来,我们再一次欢呼:又有能玩儿的了。 但随着不断的IP、内容的填充,各类技术、玩法的堆加,手游被扮得越来越好看诱人,但真让玩家进行深入体验后,能够持续在一款游戏上进行投入的(无论是金钱还是时间)却越来越少。就好像有人说:“手游不能再带给我太大的惊喜了,无论噱头有多足。” 我想,这大概就是手游“活不好”了吧。 对于如今的手游市场情况来看,由于玩家要求的不断增高,大多“模版式”的游戏已经难以满足用户的胃口,企业购买用户的成本开始逐渐加大,这无疑给市场营...阅读全文

golang 发送多人邮件 textproto.Error{Code:554, Msg:"Transaction failed: Illegal semicolon, not in group"

网上很多版本发送邮件都是用; 号,关键在于,多个邮件分割不能用; 号,需要用,号 // send mail func SendMail(subject string, message string, from *mail.Address, to []string, smtpConfig SmtpConfig, isHtml bool) error { auth := smtp.PlainAuth( "", smtpConfig.Username, smtpConfig.Password, smtpConfig.Host, ) contentType := "text/plain" if isHtml { contentType = "text/html" } msg := fmt.Sprin...阅读全文

博文 2015-01-23 03:00:00 zhangqingping

在线安装 IntelliJ IDEA的 golang 插件

IntelliJ IDEA是非常受欢迎的开发工具,如果我们希望使用IntelliJ IDEA 进行Go语言的开发,需要安装Golang插件。网上的资料几乎都是建议开发者编译源码进行安装,但这是不必要的。还有更简单快捷的在线安装方式,这里给出基本步骤(基于IntelliJ IDEA 14.1,不同版本界面会有细微差异,但步骤相似):1. 在“Settings”菜单,点击“Plugins”,打开插件管理窗口:2. 点击“ Browse repositories”,打开插件仓库管理窗口:3. 点击“Manage repositories...”,打开自定义仓库窗口:4. 在URL中输入:https://plugins.jetbrains.com/plugins/alpha/50475. 点击“OK...阅读全文

博文 2015-11-11 09:00:01 stri-zhaolei

[Golang] 从零开始写Socket Server(1): Socket-Client框架

第一次跑到互联网公司实习 。。感觉自己进步飞快啊~第一周刚写了个HTTP服务器用于微信公共号的点餐系统~ 第二周就直接开始一边自学GO语言一边写用于Socket的服务器了。。。 因为发现Golang这一块资料挺少的,接下来我会在Blog里把整个Server的Coding,还有遇到的坑都记录下来~ 在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: package main import ( "fmt" "net" "log" "...阅读全文

博文 2015-09-07 23:00:00 ahlxt123

佛系程序员的月薪五万指南

摘要: 大师:很简单,我这里有一份佛系月薪 5 万指南,我看你骨骼清奇、脑门光亮,一看就是将要大富大贵之人,这份指南可以助你快速实现小目标! ![图片描述](http://img.blog.csdn.net/20180412102533464?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVucWlpbnNpZ2h0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 程序员问大师…… 青年:大师,你看咪蒙的助理都月薪 5 万了,我也想月薪 5 万! 大师:很简单,我这里有一份佛系月薪 5 万指南,我看你骨骼清奇、脑门光亮...阅读全文

关于Go语言中defer关键字

在Go语言中,defer语句会在该函数结束的时候被调用,即使后面的语句运行时出现异常了defer语句仍然会被执行。 需要注意的是,如果defer语句中引用了参数,则该参数的值将是程序到defer这一行的时候的值,而与后面的语句没有关系。 以下为简单测试: package main import "fmt" func main() { func_b_0() func_b_1() func_b_2() } func func_b_0() { fmt.Println("func_b_0...top") a := 5 defer fmt.Println("a=", a) a++ } func func_b_1() { fmt.Println("func_b_1...top") a := 5 defe...阅读全文

博文 2015-06-17 23:00:51 books1958

配置go语言vim

Go语言自带vim 的语法高亮文件。 1: 开启vim语法高亮 vim ~/.vimrc syntax on set fencs=utf-8,gbk 2:将/usr/local/go/misc/vim/目录下文件拷贝到~/.vim/目录下(如果没有该目录则新建) mkdir ~/.vim cp -R /usr/local/go/misc/vim/* ~/.vim/ 3:新建~/.vim/ftdetect/go.vim,加入下面的内容:au BufRead,BufNewFile *.go set filetype=go echo "au BufRead,BufNewFile *.go set filetype=go" > ~/.vim/ftdetect/go.vim 只需3步,开启vim go...阅读全文

博文 2015-02-27 20:00:04 pkufergus

【 Mixin 开发者访谈录】李大狗 :从 Logo、 Basic 到区块链

Mixin Network有很多开发者,我们将持续的采访他们,了解他们的故事,希望他们的故事能对开发者有帮助。 本期开发者的 github地址是 github.com/albertschrMixin正在举办开发者大赛,javascript、 python、ruby、go程序员都可以参加,赢取总计百万大奖。详情点击 https://mixin.one/events/hackathon许多失败是因为你不去做,而非失败本身 Mixin : 能否介绍一下你自己?答: 李大狗,区块链小王子,现居北京,目前技术栈 Elixir / Javascript / Golang / Python 等。个人微信号197626581,公众号 AhaSmarter ,欢迎交流:)。Mixin : 你是什么时候开始学习...阅读全文

博文 2018-12-05 14:34:50 MixinNetwork

“朝阳群众”APP上线!解读怎么做一款深入群众的应用

每当北京警方发布这些案件侦破消息的时候,网友第一反应往往都是: 朝阳群众又立功了! 可惜的是,被网友戏称为“世界王牌情报组织”的这股东方神秘力量,始终给人感觉是一直在打游击战的“潜伏者”,来无影去无踪的,这让想要加入组织的同志只有一旁吃瓜。 ![QQ20170216-160319@2x.png](http://studygolang.qiniudn.com/170216/1dd2906f1492c276863a1ae584223126.png) “世界王牌情报组织”终于有正式根据地了! 近日,一款名为“朝阳群众HD”的APP悄然上线.... 随着北京市公安局朝阳分局官方微博“平安朝阳”的消息发布,“朝阳群众HD”赫然闯入各吃瓜群众视线。这个平台(根...阅读全文

Go-Type

在谈论struct和interface已经用到了type这个关键字。 另外,Go的type另外一种常用功能,是类似于C/C++的typedef。在Go的package中,这种用法非常常见。 A type declaration defines a new named type that has the same underlying type as an existing type. The named type provides a way to separate different and perhaps incompatible uses of the underlying type so that they can’t be mixed unintentionally. type n...阅读全文

博文 2016-09-07 07:00:01 u013344915

go语言与C++细节上的一些差异

类型声明和类型别名的区别 C++: C++中声明新类型,只能使用 类 或 结构体 的形式。 例如在源文件a.cpp中,可以声明类B: class B;。类B的定义放在b.cpp中。 C++中声明类型的别名时,有两种方法: 1,使用typedef关键字。 它的格式是: typedef OldType NewType; 例如:typedef int ChatInt; 2,使用define关键字(宏定义的方法)。 它的格式是:define NewType int; golang: go语言中声明新类型,只能使用type关键字,例如: type Books struct { title string author string subject string book_id int } C++中,对结...阅读全文

博文 2018-10-04 21:34:38 太平小小草

Go学习笔记:匿名成员

开始没搞明白啥是匿名成员,看了好几个文章,总算明白了,至少自认为是。 为啥需要匿名成员? 得从OO说起。OO要说是现代的计算机编程语言中必需的部分了。不过不同的语言对于如何实现OO中的各种概念做法并不一样。Go对OO提供了支持,但采用的是一种简洁并且直接的办法,没有类似于Java中的extends、implements关键字,而是直接用匿名成员,并通过“委派”来实现。比如下面这些代码: type E interface{ Start() Stop() Renewal(x int) } type W interface { Open() Close() Renewal() } type Car struct { E W } 有了这些,那么当创建了Car的实例以后,就可以使用: car.Star...阅读全文

执行Go程序的三种方式及Go语言关键字

执行 Go 程序的三种方式及 Go 语言关键字 执行 Go 程序的三种方式 一、使用 go run 命令 二、使用 go build 命令 Step1. 对 go 源码源文件执行 go build 命令,会生成一个同名 .exe的可执行文件 Step2. 执行.exe可执行文件 三、在线编译运行 使用官方网站的在线工具进行编译运行:https://play.golang.org Go 语言中的关键字 Go 语言关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for imp...阅读全文

敏捷测试的关键所在!

敏捷测试要求测试能够测试在“短的时间间隔内持续发生”且能够在“短时间内完成”。考虑到纯粹的依赖人工测试基本不可能达到“短的时间间隔内持续发生”和“短时间内完成”这两个目标,而自动化测试在执行效率方面具有天然的优势,在敏捷测试中使用自动化测试技术应该是自然而然的选择。 考察敏捷开发中的一个迭代周期,在迭代周期开始的时候,团队与客户一起定义本迭代周期内需要完成的功能;开发工程师开始实现新功能,使用持续集成尽可能保证每一次代码提交不引入新的缺陷;所有新功能被添加后,回归测试保证原有功能的正确性;针对新功能运行测试保证新功能的正确性。 如果依靠手工测试来进行这些项目,毫无疑问,测试会成为整个敏捷开发的瓶颈。而如果把这些项目中的测试建立在合适的自动化测试基础上的话,测试就可以和开发一起...阅读全文

Go函数的定义格式

菜鸟,刚开始学Go语言,函数定义都看不太懂 关键字func,函数名,参数列表,返回值,函数体和返回语句 那么:写起来应该是 func MyFoo(a int) (b int) { return } 但我也能看见func (file *File) Read(b []byte) (n int, err Error)这样的函数,那么函数定义中(file *File)是什么呢?怎么来理解这个呢? 请各位高手指...阅读全文

Golang没有class

但是有一种概念叫method,需要接受用关键字type来定义的receiver, method是一种特殊的函数 只不过接受的参数为一个用 type定义的receiver。 传给method的receiver有两种, 分为value receiver 与 pointer receiver 区别在于 value receiver是一份copy 而pointer receiver 其值可以在method内部被永久修改...阅读全文

博文 2019-10-28 18:32:45 aside section._1OhGeD

一个极其简单的用golang net写的tcpip echoserver

一个极其简单的用golang net写的tcpip echoserver 关键字:linux golang tcpip echoserver 虽然然效率不是很理想,但是可以给初学者参考 package main import ( "fmt" "net" "os" "runtime" ) func doEcho(c net.Conn) { defer c.Close() for { buf := make([]byte, 4096) n, err := c.Read(buf[:]) if n == 0 || err != nil { return } c.Write(buf[0:n]) } } func doStart(host string) { if host == "" { fmt.Pr...阅读全文

博文 2016-01-05 18:00:01 guestcode

都是底层类型,为什么 map是关键字,而string不是呢?

都是底层类型,为什么 map是关键字,而string不是呢? 据说,GO的关键字有25个,仅比 英文26个字母少一个。 其中赫然便有 map在内。 但同样是 GO的内置的底层类型,为什么 string 不在其中呢? 原来,这个是 关键字,保留字,用户不能再使用的名字! 而string是可以作 函数名的...阅读全文

系统学习技术的方法

1、为什么会有这个东西(why): 1)这个技术出现的背景、初衷,要达到的目标和解决什么问题;2、这门技术是什么原理(what):1) 这个技术的组成部分和关键点,2) 底层实现原理和关键实现;3、这门技术使用起来怎么样,好不好(how):1) 这个技术的优点和缺点,2) 这个技术适用的业务场景,3) 和已有技术的之间的对比 举个例子:1、 为什么会出现python这个语言,主要是实现什么目标2、python语言的基础语法是什么,模块是什么,内存管理是怎样的,底层怎么实现的?3、python的优缺点是什么, 用起来感觉怎么样, 和java\c++、golang相比,有什么不一样呢?4、哪些场景可以用python开发...阅读全文

博文 2018-11-16 02:34:38 wallehu_1111

关于golang的defer的练习

golang的defer怎么说。大意就是在函数return后。函数关闭前。按照filo的顺序来执行的关键字 上代码: package main import ( "fmt" ) func main() { // a() fmt.Println(c()) // b() // fmt.Println(d()) } func c() (i int) { defer func() { i++ }() defer fmt.Println("this:", i) return 1 } func a() { i := 0 defer fmt.Println(i) i = i + 1 } func b() { var whatever [5]struct{} for i := range whatever ...阅读全文

博文 2015-11-13 03:00:00 guhao123

过年GO HOME

过年回家喽 设计一款产品真心不易,不打个几十个来回,敲不定一个方向,还好,所有的问题都会得到解决,团队协作才是取胜的关键所在~! 技术之路漫长而寂寞 转型之路曲折而难耐 问路在何方。不是在脚下,而是在胸前。 昨日之事不可留,今日之事多烦忧。 硬件软件都有规范与设计模式,都需要经验的打磨,产品中的历练,面面俱到是不可能了。迫切需要一种思维模式,来思考,迫切需要一种环境,在规范中成长,好的经验好的管理,抓质量,严谨而缜密的思考,何时才能想德国一样严谨,何时能像日本一样精细,最适合按键盘的力度是60克 都需要无数次的实验。何时,何时,何时。这才是我想要的环境,一个作为技术人员才会有的迫切需求。 -kunka 2016-02-0...阅读全文

【Leetcode】:242. Valid Anagram问题 in Go语言

Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = "anagram", t = "nagaram", return true. s = "rat", t = "car", return false. Note: You may assume the string contains only lowercase alphabets. Follow up: What if the inputs contain unicode characters? How would you adapt your solution to such case? 这个问...阅读全文

博文 2016-05-23 00:00:03 u013564276

阿里大鱼Golang SDK —— alidayu-go

扩展 这个SDK的关键点不是实现了阿里大鱼的3个API,而是给使用者提供了一个可以自有扩展的框架,以【短信发送记录查询】接口为例。 type AlibabaAliqinFcSmsNumQueryRequest struct { BizId string `json:"biz_id"` RecNum string `json:"rec_num"` QueryDate string `json:"query_date"` CurrentPage string `json:"current_page"` PageSize string `json:"page_size"` } func NewAlibabaAliqinFcSmsNumQueryRequest() *AlibabaAliqinFcS...阅读全文

博文 2017-07-05 16:07:17 gwpp

类型和类

golang里常规的类定义一般为如下形式: type $name struct{ property01 int property02 int } func (t * name) tfunc() {} 这里一直有个 误解:struct充当了其他语言中的class关键字 其实在Golang里,类型就是类,所以我们说是类型的某个方法,类型实现了某个接口。 以上定义应当解读为 property01是struct类型(别名name)的一个属性,tfunc是struct类型(别名name)的一个方法 实际上method的定义可以依赖于所有的自定义类型。所谓自定义类型,就是通过type语句给一些内置类型起了个"别名"后所定义的新类型。 type Sex string func (s *Sex) chang...阅读全文

博文 2019-03-04 17:34:45 Linrundong

5.Go by Example: For

Go by Example: For for is Go’s only looping construct. Here are three basic types of for loops. The most basic type, with a single condition. A classic initial/condition/after for loop. for without a condition will loop repeatedly until you break out of the loop or return from the enclosing function. package main import "fmt" func main() { i := 1 f...阅读全文

博文 2014-11-27 20:00:01 u013487968

goalng1.14不同场景下sync.Map、Mutex、RWMutex锁性能测试对比

因为使用go过程中会经常使用map存储,多个goroutine会出现资源竞争的问题,所以写个demo测试一下不同方式的锁性能开销。 1.环境 MacBook Pro (15-inch, 2016) 2.6 GHz Intel Core i7 16 GB 2133 MHz LPDDR3 golang版本:1.14 2.代码 var ( num = 1000 * 10 gnum = 1000 ) func Test_main(t *testing.T) { count := 10000 div := int(50) //抽样写比例 1/5 fmt.Println("only read") testRwmutexReadOnly(count) testMutexReadOnly(count) //...阅读全文

博文 2020-03-27 16:32:58 mmmjk

在线安装 IntelliJ IDEA的 golang 插件

http://my.oschina.net/whutzl/blog/528712?p={{page}} IntelliJ IDEA是非常受欢迎的开发工具,如果我们希望使用IntelliJ IDEA 进行Go语言的开发,需要安装Golang插件。 网上的资料几乎都是建议开发者编译源码进行安装,但这是不必要的。还有更简单快捷的在线安装方式,这里给出基本步骤(基于IntelliJ IDEA 14.1,不同版本界面会有细微差异,但步骤相似): 1. 在“Settings”菜单,点击“Plugins”,打开插件管理窗口: 2. 点击“ Browse repositories”,打开插件仓库管理窗口: 3. 点击“Manage repositories...”,打开自定义仓库窗口: 4. 在URL中输入...阅读全文

博文 2016-08-19 05:00:02 u011686226

Go开发关键技术指南

本文讨论了服务器领域常见的并发等问题,也涉及到了工程化相关的问题,也整理了C背景程序员对于Go的GC以及性能的疑问,探讨了Go的错误处理和类型系统最佳实践,以及依赖管理的难处,接口设计的正交性,当然也包含我们在服务器开发中对于Go实践的总结,有时候也对一些有趣的问题做深度的挖掘,也列出了Go重要的事件和资料集合,还有Go2的进展和思考。我更想从问题本身出发,不局限于Go语言,探讨服务器中常常遇到的问题,最后回到Go如何解决这些问题,提供Go开发的关键技术指南。 本文最初发布于GoDevGuide,欢迎来github阅读原文。 Go开发关键技术指南 原图链接地址:https://www.processon.com/view/link/5df22829e4b010171a411e7d#map 感...阅读全文

博文 2020-01-11 06:32:48 winlinvip

Go-Type

在谈论struct和interface已经用到了type这个关键字。 另外,Go的type另外一种常用功能,是类似于C/C++的typedef。在Go的package中,这种用法非常常见。 A type declaration defines a new named type that has the same underlying type as an existing type. The named type provides a way to separate different and perhaps incompatible uses of the underlying type so that they can’t be mixed unintentionally. type n...阅读全文

博文 2016-09-07 08:00:06 u013344915

Go语言学习笔记

基础 关键字 类型 常量 零值 函数 基础 关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 类型 bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64 rune string uint uint8 uint16 uint32 uint64 uintptr 常量 true false iota 零值 nil 函数 append...阅读全文

博文 2015-10-30 15:00:00 zishinan

Golang学习:为基本类型添加方法

根据go源码中的time/time.go文件中的代码片段写了一个main方法,如下: package main import ( "fmt" "time" ) // A Weekday specifies a day of the week (Sunday = 0, ...). type Weekday int const ( Sunday Weekday = iota Monday Tuesday Wednesday Thursday Friday Saturday ) var days = [...]string{ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", } // Stri...阅读全文

博文 2018-11-23 21:34:39 清泉_QingQuan