• Go Code


    目录

    备注工作空间(Workspaces)GOPATH环境变量包路径(Package Path)你的第一个程序你的第一个类库包名字(Package Name)测试集成备注

    备注返回目录

    此文主要是对官方教程的学习总结,官方教程:http://golang.org/doc/code.html

    工作空间(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("你好,世界!
    ")
    7 }
    复制代码

    项目结构

    你的第一个类库返回目录

    选择一个包路径

    1 happygo.codeplex.com/study/hellolib

    hellolib.go

    复制代码
    1 package hellolib
    2 
    3 func Max(x int, y int) int {
    4     if x >= y {
    5         return x
    6     }
    7 
    8     return y
    9 }
    复制代码

    修改hello.go,调用类库

    复制代码
     1 package main
     2 
     3 import (
     4     "fmt"
     5     "happygo.codeplex.com/study/hellolib"
     6 )
     7 
     8 func main() {
     9     fmt.Print("你好,世界!
    ")
    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开发个应用试试。

     
    分类: Go
  • 相关阅读:
    自定义 Laravel 5.7
    1项目环境配置和用户表设计
    Laravel 6.X + Vue.js 2.X + Element UI 开发知乎流程
    component:(resolve) => require
    Vue2.0 render:h => h(App)
    techiediaries Vuejs教程
    techiediaries网站的Laravel 6系列教程
    合并结果插件
    SQLMAP
    CNC MacroProgram
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3323343.html
Copyright © 2020-2023  润新知