golang的windows本地开发环境搭建

一:安装goLang 1、下载安装go语言。 官网下载地址: https://code.google.com/p/go/wiki/Downloads?tm=2 选择集成与开发环境对应的.msi安装包 ,如:go1.2.2.windows-amd64.msi 2、安装。 注意:千万不要在路径有中文。否则之后将无法正常使用Go语言开发工具 由于使用msi安装文件,所以Go语言的环境变量已经自动设置好了。 注意:如果下面的HelloWorld程序无法正常运行,或则你使用的是zip包,...阅读全文

开源中国博客 2014-05-27 10:56 momoHuang

golang小程序试验(四)

1. golang的函数类型转换 一个go playground的例子,首先定义一个func类型的别名A,然后定义了A的一个方法。再定义一个函数,此函数的参数与返回值与A相同(这样才能显式转换)。在main中把此函数显式转换为A类型,这样它就可以调用A的方法了。 package main import "fmt" type A func(int, int) func (f A)Serve() { fmt.Println("serve2") } func serve(int,i...阅读全文

开源中国博客 2013-12-11 15:39 壬癸甲乙

golang将byte的int转换

在使用golang做数据传输的时候,会经常遇到byte与int的互转,但golang并没有现成的方法,因此只能通过binary包来解决 所以,需要 :import "encoding/binary",又因为是byte的转换,所以还涉及到了bytes:import "bytes" 代码如下: package main   import (       "bytes"       "encoding/binary"       "fmt"       "strings"   )  ...阅读全文

开源中国博客 2014-03-28 11:44 kuerant

golang小程序试验(三)

1. golang的log模块 golang的log模块可以很方便的创建自己的日志记录,包括日志文件路径,日志格式等都可以自己定义。先来看一个程序: package main import ( "fmt" "log" "os" ) func main() { logfile, err := os.OpenFile("d:\\test.log", os.O_RDWR|os.O_CREATE, 0) if err != nil { fmt.Printf("%s\r\n",...阅读全文

开源中国博客 2013-12-06 14:12 壬癸甲乙

ubuntu下golang+mysql

[GO安装] 本来采用 sudo apt-get install golang 安装,后来发现这样装下来是go1版本,这样后面在编译go-sql-driver插件会有问题。 后来参考参考资料2中所说,从http://www.golangtc.com/download下载对应平台的包。 安装其实很简单,只要简单配置一下环境变量,在.bashrc里增加 export GOROOT=$HOME/bin/go export GOARCH=amd64    #如果是32位就是=386 export...阅读全文

开源中国博客 2014-09-29 10:06 suit

golang之runtime.SetFinaliz

在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。 参考: Go 语言中手动内存管理 go语言之初始化的构造函数 Go和C如何共享内存资源阅读全文

开源中国博客 2014-06-20 15:11 wkh

自己封装的golang 操作数据库方法

这个是我用Go写的第一个东东,可能还存在些BUG没有测试到。这里主要是提供一个参考。各位可以改写成自己的风格。       在命令行下输入如下两条命令,进行安装 go get github.com/male110/SimpleDb go install github.com/male110/SimpleDb Go语言的数据库操作,只能用Rows.Scan来一次性读取所有列。感觉很不习惯,我还是习惯按照列名来一列列的取数据。所以我自己封装了一个数据结构My...阅读全文

开源中国博客 2013-07-01 19:35 王岩0001

golang对共享内存的操作

不同进程间的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制。 共享内存用到的是系统提供的mmap函数,它可以将一个文件映射到虚拟内存的一个区域中,程序使用指针引用这个区域,对这个内存区域的操作会被回写到文件上,其函数原型如下: void *mmap(void *addr, siz...阅读全文

开源中国博客 2013-11-26 19:01 壬癸甲乙

golang的defer精析

example1 func f() (result int) {      defer func() {          result++      }()      return 0 } example2 func f() (r int) {      t := 5      defer func() {          t = t + 5      }()      return t } example3 func f() (r int) {      defer func(r...阅读全文

开源中国博客 2014-08-13 09:48 chen yuwen

golang的json操作

package main import ( "encoding/json" "fmt" "os" ) type ConfigStruct struct { Host              string   `json:"host"` Port              int      `json:"port"` AnalyticsFile     string   `json:"analytics_file"` StaticFileVersion int      `js...阅读全文

开源中国博客 2014-03-20 15:00 liaojie

golang 坑集

func main() { x := 1 defer func(a int) { fmt.Println("a=", a) }(x) defer func() { fmt.Println("x=", x) }() x++ } 结果: x=2 a=1 说明: defer 调用所需参数在 defer 语句执行时就被已计算好了 (拷贝传递),闭包内则是引用,defer执行顺序FIFO 数组和slice 数组是值类型 slice是引用类型, 数组的创建  arr:=[...阅读全文

开源中国博客 2014-09-12 17:47 健哥大人

初识golang之函数

声明: func funcName(input1 type1, intput2 type2) (output1 type1, output2 type2) {     ………………     //可以有多个返回值     return val1, val2 } 说明:golang中通过func来声明一个函数,函数可以有一个或者多个参数,每个参数后面带类型,通过,分隔;函数可以返回多个值,返回的个数要于声明时定义的返回个数...阅读全文

开源中国博客 2013-08-28 23:17 vcity