博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go:如何组织代码
阅读量:7050 次
发布时间:2019-06-28

本文共 1623 字,大约阅读时间需要 5 分钟。

备注

此文主要是对官方教程的学习总结,官方教程:。

工作空间(Workspaces)

Go代码必须保持在一个workspace,workspace是一个目录结构,他有三个子目录构成:

  1. src:包含了组成packages的源代码,一个目录就是一个package。
  2. pkg:包含了package objects(编译后的类库)。
  3. bin:包含了executable commands(编译后的可执行程序)。

go tool编译packages,然后将编译结果安装到pkg目录或bin目录,下面是一个湿示例:

GOPATH环境变量

GOPATH环境变量指向了Workspace的位置,如果没有设置的话,自己去设置一下,否则go install会执行失败。

包路径(Package Path)

标准类库的packages可以使用短名字,如:fmt。对于你自己的Packages,最好提供一个base path(基路径),这可以避免命名冲突,下面是我的命名原则:

1 happygo.codeplex.com/study(源代码服务提供商仓库/项目)。

你的第一个程序

选择一个包路径

1 happygo.codeplex.com/study/hello

hello.go

1 package main //command executable(命令行可执行程序)必须使用main作为package名字。2 3 import "fmt"4 5 func main() {6     fmt.Print("你好,世界!\n")7 }

项目结构

你的第一个类库

选择一个包路径

1 happygo.codeplex.com/study/hellolib

hellolib.go

1 package hellolib2 3 func Max(x int, y int) int {4     if x >= y {5         return x6     }7 8     return y9 }

修改hello.go,调用类库

1 package main 2  3 import ( 4     "fmt" 5     "happygo.codeplex.com/study/hellolib" 6 ) 7  8 func main() { 9     fmt.Print("你好,世界!\n")10     fmt.Printf("2 和 3中最大的是 %d!", hellolib.Max(2, 3))11 }

项目结构

注意:Go使用静态链接(会将所依赖的代码链接到一个文件)。

包名字(Package Name)

Go源文件必须以包声明开始:

1 package name

一些规则:

  1. 一个package(文件件)中的所有文件必须使用相同的名字。
  2. Go语言约定import path(导入路径)的最后一个元素是包名字。
  3. Executable Commands必须使用 package main。

测试集成

Go提供了 go test 命令和 testing package帮助我们做测试,下面是测试的组织规则:

  1. 文件必要以 _test.go 结尾。
  2. 函数名必须包含如下签名:func TestXXX(t *testing.T)。

hellolib_test.go

1 package hellolib 2  3 import "testing" 4  5 func TestMax(t *testing.T) { 6     const x, y = 2, 3 7     max := Max(x, y) 8     if max == x { 9         t.Error("Max错误!")10     }11 }

备注

大环境搞明白了,语法就快了,再用一天时间学习一下语法,然后用Google App Engine开发个应用试试。

 

转载地址:http://lqsol.baihongyu.com/

你可能感兴趣的文章
Shell脚本
查看>>
RPM包管理
查看>>
7个顶级心理寓言
查看>>
我的友情链接
查看>>
2.vi 和 vim 编辑器
查看>>
mdadm--RAID 5
查看>>
java异常设计
查看>>
服务器的几种时间同步
查看>>
我的友情链接
查看>>
WPF“动画序列”框架的初步研究与实现(附源码)
查看>>
校招求职面试连载(二)
查看>>
网络学习(三十一)操作系统无人值守自动安装之Windows XP
查看>>
handler 机制
查看>>
解决mysql无法导入本地文件的问题
查看>>
HBase 系统架构
查看>>
RichFace标签学习笔记
查看>>
iOS中block介绍(四)揭开神秘面纱(下)
查看>>
更改yum源为阿里云的yum源
查看>>
解决exchang服务器连接不可用问题
查看>>
Tomcat启动权限
查看>>