Go 语言 在线

2205Go 语言教程

压缩Go 可执行文件大小

查看 go 连接的参数

$ go tool link -h

可以看到

usage: link [options] main.o

-s    disable symbol table      # 去掉符号表

-w    disable DWARF generation  # 去掉调试信息

这二选项可以减少程序文件体积

同一个 hello.go 文件

package main

import "fmt"

func main() {

fmt.Println("hello world")

}

二个不同的编译 生成的文件大小相差很大

$ go build -o hello helloworld.go

$ go build -ldflags "-s -w" -o small helloworld.go

2011-06-15  07:10         1,081,344 hello

2011-06-15  07:10           768,000 small

另外还可以使用 upx 压缩 go 二进制文件

2204Go 语言环境安装

windows下 设置GOROOT GOPATH

在系统属性-》高级-》系统变量 添加  GOROOT 比如 F:\GOROOT

在系统属性-》高级-》用户变量 添加  GOPATH 比如 F:\Administrator\go

2203Go 语言环境安装


珍惜今天,珍惜现在 谁知道明天和意外 哪一个先来

2202go-passing-pointers-to-functions

以下是一个更更简洁的变量交换实例:

package main

import "fmt"

func main() {
    /* 定义局部变量 */
   var a int = 100
   var b int= 200
   a, b = b, a

   fmt.Printf("交换后 a 的值 : %d\n", a )
   fmt.Printf("交换后 b 的值 : %d\n", b )
}

2201go-passing-pointers-to-functions

以下是一个更简洁的变量交换实例:

package main

import "fmt"

func main() {
    /* 定义局部变量 */
   var a int = 100
   var b int= 200
   swap(&a, &b);

   fmt.Printf("交换后 a 的值 : %d\n", a )
   fmt.Printf("交换后 b 的值 : %d\n", b )
}

/* 交换函数这样写更加简洁,也是 go 语言的特性,可以用下,c++ 和 c# 是不能这么干的 */
 
func swap(x *int, y *int){
    *x, *y = *y, *x
}