GO!---Windows下GO的环境搭建

一、 下载编译器 下载go语言的开发工具可以到http://code.google.com/p/gomingw/downloads/list去下载,这里列出了当前最新的版本。 我选择下载http://gomingw.googlecode.com/files/gowin386_release.r60.3.zip 下载完毕之后,就是一个压缩包,我们把它解压缩,最终解压缩后的目录以go命名。 二、 配置环境变量 编译工具下载之后解压缩,就是一个目录,后期我们需要在命令行或者工具中调用编译程序,所以需要...阅读全文

CSDN博客 2013-07-08 17:47 zp373860147

Go学习笔记——go routine

Go routine indeed 本短结论引用自:goroutine背后的系统知识,让我了解为什么goroutine这么轻量级,以及其优势劣势。 Go语言通过goroutine提供了目前为止所有(我所了解的)语言里对于并发编程的最清晰最直接的支持,Go语言的文档里对其特性也描述的非常全面甚至超过了,在这里,基于我们上面的系统知识介绍,列举一下goroutine的特性,算是小结: (1) goroutine是Go语言运行库的功能,不是操作系统提供的功能,goroutine不是用线程实现的。具体可...阅读全文

CSDN博客 2014-02-07 17:06 qjpcpu

go学习篇之认识go(1)

go语言自己接触的时间也不是很长,第一次是在什么情况下认识它的,我记得已经不是很清楚了,但那时我知道,这门语言值得我去学习和深入的了解,至于为什么,我想自己可能也描述不出来,那我们就来看看它在别人心中具体是什么样的一门语言,它与我们学的vb、c/c++、java、c#静态语言及php、python、ruby等动态语言有什么样的不同之处。 1.简约的语言风格设计。go语言关键字少,而且很多语法使用方式与其他语言相比大有不同,go语言设计者觉得,代码似乎已经渐渐成了软件设计前行的一大障碍,我们需要在...阅读全文

CSDN博客 2015-04-11 15:12 xixionedream

Go by Example: Recursion

Go语言支持递归函数。这里是一个经典例子:factorial 数列。 package main import "fmt" // fact函数不断地调用自身,直到达到基本状态fact(0) func fact(n int) int { if n == 0 { return 1 } return n * fact(n-1) } func main() { fmt.Println(fact(7)) }输出 $ go run recursion.go 5040 下一个例子: Go by Example:...阅读全文

CSDN博客 2015-01-02 23:21 codemanship

go编程之简单正则表达式使用

对于正则表达式的语法,虽然曾经有熟悉过,但只会用比较简单的匹配模式,现在长时间不用,连简单的匹配写起来都有点成为硬伤的赶脚,不过这里终点不是正在表达式的学习了,咱来看看go语言对于正则表达式的支持及简单的使用就好,程序主要参考go web一书所写,大家可以一起来学习。 主要使用的包为regexp,使用的时候import "regexp“ 就行啦,以下是常用的几个接口 func Match( pattern string, b [ ] byte) ( matched bool, error err...阅读全文

CSDN博客 2015-05-16 17:46 xixionedream

go基础——03(array、slice、map)

学习笔记 1、array array就是数组,它的定义方式如下: var arr [n]type 在[n]type中,n表示数组的长度,type表示存储元素的类型。 对数组的操作和其它语言类似,都是通过[]来进行读取或赋值: var arr [10]int // 声明了一个int类型的数组 arr[0] = 42 // 数组下标是从0开始的 arr[1] = 13 // 赋值操作 fmt.Printf("The first element is %d\n", arr[0]) // 获取数据,返回...阅读全文

CSDN博客 2014-09-18 23:49 shaozhang872196

Go by Example: Variadic Functions

可变参数函数支持任意数量的传入参数。例如:fmt.Println 就是一个常见的可变参数函数。 package main import "fmt" // 这个函数可以使用任意数量的int型数作为参数 func sum(nums ...int) { fmt.Print(nums, " ") total := 0 for _, num := range nums { total += num } fmt.Println(total) } func main() { // 可变参数函数支持使用常规方式...阅读全文

CSDN博客 2015-01-02 19:36 codemanship

Go学习笔记之高级数据类型

高级数据类型,仅仅是做个概念认识,等到其他相关知识的学习时,再着重分析。 1 function 将 function 作为数据类型的语言有很多,函数式编程的核心理念。 function 是“第一等公民”,function 与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另外一个 function ,或者作为别的 function 的返回值。 在 Go 语言中,进行赋值的首要条件是类型一致,function 赋值给其他变量的前提是,必须 function 签名一致才认为是...阅读全文

CSDN博客 2013-05-29 11:06 hnxxwyq

go编程之XML文件解析

XML俨然已经称为我们程序开中一种数据交换和信息传递不可缺少的一枚角色,当然任何语言对XML的解析支持都不可或缺,今天我们一起学习学习go的xml解析。 需要解析的XML文件:student.xml xml文件内容:<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <students version="1"> <student> <studentName>xixi</studentName> <student...阅读全文

CSDN博客 2015-05-09 15:10 xixionedream

基于Go的D-Bus框架(三)

开源夏令营第二个月的实习期已经过去一半了,这一段时间因为总有小朋友到家里来玩,耽误了一些时间。最近几天主要研究了一下枚举类型的问题,这个问题的需求比较明确,即让go-dbus能够像处理其他数据类型(比如struct)一样处理枚举类型,解决的思路也比较清晰。 D-Bus核心并没有定义枚举类型,为了让go-dbus支持枚举类型,一个可行的做法就是在D-Bus底层用整数来表示枚举类型变量,并且限制它的有效取值。涉及的问题的主要有: 1,marshaling,把Go语言里的数据转化为D-Bus的wire...阅读全文

CSDN博客 2014-08-23 22:16 mathmonkey

GO 学习笔记 一基础篇

GO程序是由包组成的。 程序的入口是包 ‘main’ 导入包使用 import 语句 (类似于C语言的 include) 导入一个包后,用导出的名称来调用(导出的名称首字母为大写) GO中的函数用func申明,函数中的参数可以没有参数或接受多个参数。 类型申明在参数名和函数定义之后。 GO的返回值可以被命名后像变量一样来使用。 var语句定义了一个变量的列表,类型申明在变量名之后。 如果初始化是使用表达式,就可以省略类型申明,变量根据初始值来确定类型 变量在没有明确初始化时,会赋值为零值 “:=...阅读全文

CSDN博客 2014-12-09 14:44 phlong999

Go by Example: Variables

在Go语言中,所有的变量都是显示声明的。编译器会使用变量进行相应的操作,例如:在函数调用时进行类型检查。 package main import "fmt" func main() { //使用var声明单个或者多个变量 var a string = "initial" fmt.Println(a) //你也可以一次声明多个变量 var b, c int = 1, 2 fmt.Println(b, c) //Go语言会利用初始化的变量推断出变量的类型 var d = true fmt.Print...阅读全文

CSDN博客 2014-11-15 17:13 codemanship

go中方法的接收者是值或者指针有什么区别吗?

参考文章:http://studygolang.com/articles/1113 希望解决的问题如下 假设有两个方法,一个方法的接收者是指针类型,一个方法的接收者是值类型,那么: 对于值类型的变量和指针类型的变量,这两个方法有什么区别? 如果这两个方法是为了实现一个接口,那么这两个方法都可以调用吗? 如果方法是嵌入到其他结构体中的,那么上面两种情况又是怎样的? 值类型的变量和指针类型的变量 先声明一个结构体: type T struct { Name string } func (t T) M...阅读全文

CSDN博客 2015-04-30 17:20 u013790019

谢孟军:我为什么选择使用Go语言? | EGO会员首期线上分享活动

为了加深EGO会员之间的相互了解,同时也为大家提供更多线上相互学习交流的机会,EGO正式启动会员群线上分享活动。本文是根据谢孟军分享的主题“Go与我”的内容整理而成。“首期分享嘉宾:谢孟军:EGO会员、GopherChina组织者、《Go Web编程》一书的作者,专注golang技术架构。 在这里我主要想和大家分享一些Go和我个人的成长史。首先聊聊Go,在2009年全部开源出来后,它获得了当年的年度语言,但是直到2011年它才发布正式的稳定版本。Go稳定版发布时,Go Team承诺后续的版本都会...阅读全文

微信公众平台 2016-03-09 谢孟军

go lang学习笔记——接口

go接口非常强大,除了作为一般的接口使用外。它还是go的运行时多态的基础。更能提供超越boost::any的能力。许式伟的《go语言编程》一书中有对接口的机制作较深入的剖析和介绍。 结合书中描述再加上我自己的理解。整理了一下go接口的数据结构和基本操作的描述。 有必要说明的是,以下结构引用的部分书中代码,并且做了极大的精减,只为了能用最简单的方式描述并理解go接口的实现原理。如果我的理解和实现情况相差千里,还望指正。 类型的数据结构 typedef struct _MemberInfo { co...阅读全文

CSDN博客 2015-05-27 22:55 nobugtodebug

Go基础学习-Reciver

Go是一门地地道道的面向对象的语言,但是他没有大部分面向对象语言的关键字class,不过这并不影响这门优秀的语言发挥面向对象的特性。 Go语言通过struct关键字来定义一个类,在定义时,仅仅定义了字段,并没有定义函数,例如 定义一个Person类,并指定姓名和年龄属性,但是无法指定test方法(行为)。 type Person struct { Name string Age uint8 //func test() //不可以这样做 } Go是通过Reciver来完成函数与类的连接工作的,下面...阅读全文

CSDN博客 2013-10-01 20:19 blueln

[Go] --- 控制结构

Email : hahayacoder@gmail.com 1 Go语言中常用的控制结构有:if语句、switch语句和for循环 2 if语句和C语言很类似,但是判断条件没有圆括号括起来,必须有大括号 //if var value int = 2 if value%2 == 0 { fmt.Printf("%d是偶数\n",value) } //if...else if value%2 == 0 { fmt.Printf("%d是偶数\n",value) } else { fmt.Printf...阅读全文

CSDN博客 2013-03-31 17:39 qiurisuixiang