随笔分类 - GO语言
摘要:由于code.google.com被墙,导致一些托管在code.google.com上面的包go get不下来,此功能就是用于解决这个问题。 http://www.golangtc.com/download/package 使用方法: 输入完整包名,如:code.google.com/p/go.ne
阅读全文
摘要:Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP
阅读全文
摘要:无缓冲 channel 是在多个 goroutine 之间同步很棒的工具。 当在 Go 中用 ch := make ( chan bool ) 创建 chennel 时,bool 型的 无缓冲 channel 会被创建。这对于程序来说意味着什么呢?首先,如果读取( value := <− ch )它
阅读全文
摘要:虽然goroutine 是并发执行的,但是它们并不是并行运行的。如果不告诉Go 额外的东西,同一时刻只会有一个goroutine 执行。利用runtime.GOMAXPROCS(n) 可以设置goroutine 并行执行的数量。来自文档:GOMAXPROCS 设置了同时运行的CPU 的最大数量,并返
阅读全文
摘要:golang 语言中 也有 类是 javascript 的 typeof 判断类型的 方法 比如 func (a interface{}){ //第一种 if inst,ok:=a.(TypeA);ok{ inst.MethodA() } //第二种 switch inst:=a.(type){ c
阅读全文
摘要:1、整形到字符串: [plain] view plain copy var i int = 1 var s string [plain] view plain copy s = strconv.Itoa(i) 或者 s = FormatInt(int64(i), 10) 2、字符串到整形 [plai
阅读全文
摘要:在 Go 中,类型可以定义接收此类型的函数,即方法。每个类型都有接口,意味着对那个类型定义了方法集合。 下面定义了结构体类型 S 以及它的两个方法: type S struct { i int } func (p *S) Get() int { return p.i } func (p *S) Pu
阅读全文
摘要:cgo不是Go 借用 JWZ 的一句话 有些人,当他们面临一个问题时,认为“我知道,我会使用 cgo ”。那么现在,他们有了两个问题。 最近有人在 Gopher 的 Slack Channel 上使用 cgo,对此我感到十分担心,尤其是竟然有个组织内部打算用一个项目来展示 Go,那真是一个坏主意。对
阅读全文
摘要:这篇文章主要介绍了GO语言延迟函数defer用法,较为详细的分析了GO语言的特性与具体用法,并给出了一个比较典型的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下 这篇文章主要介绍了GO语言延迟函数defer用法,较为详细的分析了GO语言的特性与具体用法,并给出了一个比较典型的应用实例,具有一
阅读全文
摘要:其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang的开发环境。 开发环境: 一、安装 这里我用需要安装一些工具: 1.Visual Studio Code 1
阅读全文
摘要:该函数主要是切片(slice)的拷贝,不支持数组 将第二个slice里的元素拷贝到第一个slice里,拷贝的长度为两个slice中长度较小的长度值 示例: s := []int{1,2,3} fmt.Println(s) //[1 2 3] copy(s,[]int{4,5,6,7,8,9}) fm
阅读全文
摘要:前面提到不少Go的内建函数,这篇文章学习下如何使用。。 make 先拿 make 开刀,可是一开始我就进入了误区,因为我想先找到他的源码,先是发现 src/builtin/builtin.go 中有func make(Type, size IntegerType) Type ,可是这里只有两个参数,
阅读全文
摘要:0)变量声明 var 变量名字 类型 = 表达式 例: 其中“类型”或“= 表达式”两个部分可以省略其中的一个。 1)根据初始化表达式来推导类型信息 2)默认值初始化为0。 例: 1)整型 1.1)整型类型 rune 类型是 Unicode 字符类型,和 int32 类型等价,通常用于表示一个 Un
阅读全文
摘要:range是go语言系统定义的一个函数。 函数的含义是在一个数组中遍历每一个值,返回该值的下标值和此处的实际值。 假如说a[0]=10,则遍历到a[0]的时候返回值为0,10两个值。 下面是一个例子:这个例子是求一个数组里面的平均值。 package main import ( "fmt" ) fu
阅读全文
摘要:Go基础 Go基础 switch sExpr { case expr1: some instructions case expr2: some other instructions case expr3: some other instructions default: other code } s
阅读全文
摘要:概述 Go 语言中的 new 和 make 一直是新手比较容易混淆的东西,咋一看很相似。不过解释两者之间的不同也非常容易。 new 的主要特性 首先 new 是内建函数,你可以从 http://golang.org/pkg/builtin/#new 这儿看到它,它的定义也很简单: 复制代码代码如下:
阅读全文
摘要:import "fmt" type Rank int const ( Rank001 Rank = iota Rank002 Rank003 Rank004 ) var rewards = [...]string{ "奖励1","奖励2","奖励3","奖励4", } func (r Rank) g
阅读全文
摘要:golang 的 select 的功能和 select, poll, epoll 相似, 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 示例: ch1 := make (chan int, 1) ch2 := make (chan int, 1) ... select { case
阅读全文
摘要:Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用
阅读全文
摘要:首先对Visual Studio Code做一个大概的介绍。首先明确一下,这个Visual Studio Code(以下简称 vscode)是一个带GUI的代码编辑器,也就是只能完成简单的代码编辑功能,并不是一个集成开发环境(IDE)。而Visual Studio、WebStorm 这类的开发工具是
阅读全文