02 基础概念和命令

1.工作区和GOPATH

一般情况下,工作区用来放置GO源码文件

#工作区习惯目录
/home/zyz/godemo
	src/		存放源码,以代码包组织
	pkg/		存放归档文件和平台相关目录(.a文件)
	bin/		存放当前工作区中go程序可执行文件
#设置环境变量
GOPATH=/home/zyz/godemo
PATH=$PATH;/home/zyz/godemo/bin

2.源码文件分类和含义

  • 测试源码文件
//其中至少有一个函数的名称以Test或Benchmark为前缀
//并且,该函数接受一个类型为*testing.T或*testing.B的参数
func TestFind(t *testing.T) {
	//功能测试函数
	...
}

func BenchmarkFind(b *testing.B) {
	//性能测试函数/基准测试函数
	...
}

3.代码包相关知识

代码包作用和规则

  • 代码包作用
    编译和归档GO程序的基本单位
  • 代码包规则
    实际是一个由导入路径代表的目录

代码包定义

  • 代码包声明
    每一个源码文件都必须声明所属的代码包,同一个代码包中所有源码文件声明的代码包应该相同
// calc/add.go
package calc

func Add(x, y int) int {
	return x + y
}
// calc/sub.go
package calc

func Sub(x, y int) int {
	return x - y
}

代码包导入

//方法一
import {
	"fmt"
	"strings"
}

//方法二:带别名导入
import str "strings"

//方法3:本地化导入
import . "strings"

//方法4:匿名导入
import _ "strings"

//方法5:自定义代码包导入
//import calc
import customcalc "zyz.github.com/study/calc"

代码包初始化

代码包初始化函数即:无参数声明和结果声明的init函数
init函数可以被声明在任何文件中,且可以有多个,在导入包的时候会全部执行

//add.go
package calc

import "fmt"

func Add(x, y int) int {
	return x + y
}

//init函数可以有多个
func init() {
	fmt.Println("自动执行1...")
}

func init() {
	fmt.Println("自动执行2...")
}
//sub.go
package calc

import "fmt"

func Sub(x, y int) int {
	return x - y
}

//init函数可以有多个
func init() {
	fmt.Println("自动执行3...")
}

func init() {
	fmt.Println("自动执行4...")
}
//main.go
package main

import _ "zyz.github.com/study/calc"

func main() {

}

输出结果

自动执行1...
自动执行2...
自动执行3...
自动执行4...

4.常用命令

  • go run
    -a 强制编译相关代码,忽略最新的结果
    -n 打印编译过程中所需运行的命令,但不执行
    -p n 并行编译,n为并行的数量
    -v 列出被编译的代码包的名称
    -work 显示编译时创建的临时工作目录路径,并且不删除
    -x 打印编译过程中所需运行的命令,并执行

  • go build 编译源码文件或代码包

  • go install 编译并安装代码包或源码文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值