第一回 ,如何寫 go 代碼

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

GOPATH 和 workspace

go語言的核心原則是保持簡單,在項目構造 方面,原始碼 和 和 構建指令碼是 放在一起的,結構是固定的,就像maven那樣。

先在path後多加一個 go(下載解壓後的go包)的bin,使你可以自由使用go的命令

GOPATH 的系統內容變數,和ava_home 對於 java 不一樣,目的是為了讓go的命令和其它相關工具找到go的workspace

GOPATH d:\home\user\ext;d:\home\user\mygo
可以有多個,分號分開。unix中冒號分開。

每個workspace的結構

  • src contains Go source files,
  • pkg contains compiled package objects, and
  • bin contains executable commands

建立這三個檔案夾。

然後就可以再src下 寫 go的源檔案了,

命令然後再 執行 go install 命令


對於sqrt.go檔案 它的檔案路徑是D:\workspacego\src\example\newmath

D:\workspacego 是 gopath 

src 是源碼目錄

example算是項目名

newmath 這是代碼中 package的包聲明

package newmath
// Sqrt returns an approximation to the square root of x.
func Sqrt(x float64) float64 {
        // This is a terrible implementation.
        // Real code should import "math" and use math.Sqrt.
        z := 0.0
        for i := 0; i < 1000; i++ {
                z -= (z*z - x) / (2 * x)
        }
        return z
}

而另外一個檔案hello.go   D:\workspacego\src\example\hello

它的package是 main 代表了 他的 main函數是這個project的入口

不像上邊的package要與檔案目錄名儲存一致,如果是main則是 檔案名稱與目錄名儲存一致

它會被轉換為一個執行命令

package main
import (
        "example/newmath"
        "fmt"
)
func main() {
        fmt.Printf("Hello, world.  Sqrt(2) = %v\n", newmath.Sqrt(2))
}


go install example/hello
編譯 安裝命令

bin/    hello              # command executablepkg/    linux_amd64/         example/            newmath.a  # package objectsrc/    example/        hello/            hello.go   # command source        newmath/            sqrt.go    # package source
bin下會產生一個執行命令,在window下是hello.exe

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.