golang在当前执行目录创建日志文件
package main import ( "bufio" "log" "os" "os/exec" "path/filepath" "strings" "time" ) /*获取当前文件执行的路径*/ func GetCurrPath() string { file, _ := exec.LookPath(os.Args[0]) path, _ := filepath.Abs(file) splitstring...阅读全文
package main import ( "bufio" "log" "os" "os/exec" "path/filepath" "strings" "time" ) /*获取当前文件执行的路径*/ func GetCurrPath() string { file, _ := exec.LookPath(os.Args[0]) path, _ := filepath.Abs(file) splitstring...阅读全文
Go语言位操作实例 package main import ( "fmt" ) // 获取0-n之间的所有偶数 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&与C语言中使用方式一样 array = append(array, i) } } return array } // 互换两个变量的...阅读全文
不同进程间的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制。 共享内存用到的是系统提供的mmap函数,它可以将一个文件映射到虚拟内存的一个区域中,程序使用指针引用这个区域,对这个内存区域的操作会被回写到文件上,其函数原型如下: void *mmap(void *addr, siz...阅读全文
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...阅读全文
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...阅读全文
压缩文件 package main import ( "fmt" "os" "io" "archive/tar" "compress/gzip" ) func main() { // file write fw, err := os.Create("tar/lin_golang_src.tar.gz") if err != nil { panic(err) } defer fw.Clos...阅读全文
//调用方式 func WindowVersion1() { h, err := syscall.LoadLibrary("kernel32.dll") if err != nil { fmt.Printf("Error: %s\n", err) return } defer syscall.FreeLibrary(h) proc, err := syscall.GetProcAddress(h, "GetVersion") if err != nil { fmt.P...阅读全文
声明: func funcName(input1 type1, intput2 type2) (output1 type1, output2 type2) { ……………… //可以有多个返回值 return val1, val2 } 说明:golang中通过func来声明一个函数,函数可以有一个或者多个参数,每个参数后面带类型,通过,分隔;函数可以返回多个值,返回的个数要于声明时定义的返回个数...阅读全文
golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间 s...阅读全文
Debuggers Application programming needs good debugging support, and in this area still a lot of work needs to be done. A debugger (Oogle): support for gdb (at least version 7 is needed), the GNU debugger is being built in Go’s gc linker (6l, 8l) by ...阅读全文
假如你对golang感兴趣, 却尚未开始入门, 这篇文章就是为你准备的. 为什么要学习golang? 游说开发者尝试golang的文章很多. 比如golang主要设计者的演讲, 某个德国人的吐槽, 国内golang布道者所著书籍的前言. 我不想重复一遍大牛们的观点, 只想说一说自己朴素的感受. 在学习golang之前, 我是java的爱好者, 犹如iteye的大多数用户一样. 是的, 我喜欢java, 开源, 跨平台, 强大的IDE支持, 最重要的是--工作...阅读全文
golang官方编译器安装与配置 因为golang是用部分功能语言编写的,所有首先应安装gcc, $ sudo apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,用于提取golang的源代码 $ sudo apt-get install mercurial 提取golang的原代码 $hg clone -r release https://go.googlecode.com/hg/ go 编辑源代码 $ cd go/src ...阅读全文
func main() { arr := [10]int {1,2,3,4,5,6,7,8,9,10} var slice1 []int = arr[:5] //取数组前5个 slice2 := arr[5:]//取数组后5个 slice3 := make([]int, 5)//make一个切片,初始化前5个为0 mySlice2 := make([]int, 5, 10) // make一个切片,初始化前5个为0,初始容量为10 mySlice3 ...阅读全文
使用天气预报的接口:http://weather.china.xappengine.com/api?city=南宁 (找了好久才找到一个支持拼音的,不过好像小地方是没数据的) 访问得到json格式压缩的数据,格式化后 { "pub": "2013-06-29 22:59", "name": "南宁", "wind": { "chill": 81, "direction": 140, "speed": 7 ...阅读全文
首先导入包 "code.google.com/p/mahonia" 可以通过此链接获得此包 https://code.google.com/p/mahonia/ 参考代码如下: package main import ( "bufio" "code.google.com/p/mahonia" "log" "os" "strings" "time" ) func main() { //创建日志文件 t := time...阅读全文
声明: 源slice= src 添加slice = app 结果slice=tar append时 len tar === len src + len app 1)如果len(src) + len(app) <= cap(src) cap tar = cap(src) 2)否则 a) len(src) + len(app) > 2* cap(src) cap tar = len(src) + len(app) b) cap...阅读全文
func main() { size := 1 datasSlice := make([][]byte, size) for i := 0; i < size; i++ { datasSlice[i], _ = ioutil.ReadFile("images/" + strconv.Itoa(i+1) + ".jpg") fmt.Println("raw size:", strconv.Itoa(i)+".jpg :", len(datasSlice[i])) } var ...阅读全文
package main import ( "sync/atomic" "unsafe" ) type a struct { x unsafe.Pointer y uint64 } func main() { p := new(a) atomic.AddUint64(&p.y, 1) } 在32位计算机上运行改程序,会出现错误: panic: runtime error: invalid memory address or nil pointer...阅读全文