go語言學習 go語言原始碼檔案

2021-10-21 02:46:49 字數 2882 閱讀 7189

二、庫原始碼檔案

三、總結

原始碼檔案分為三種,即:命令原始碼檔案、庫原始碼檔案和測試原始碼檔案。

命令原始碼檔案

庫原始碼檔案

測試原始碼檔案

1.1命令原始碼檔案介紹

package main

import (

//flag包用於接收和解析命令引數

"flag"

//fmt包含有格式化i/o函式

"fmt"

)var name string

func init()

func main()

[root@zijie workspace]# go run demo1.go -name="zijie"

hello, zijie!

[root@zijie workspace]# go run demo1.go --help

//go run命令構建上述命令原始碼檔案時臨時生成的可執行檔案的完整路徑。

usage of /tmp/go-build990272550/b001/exe/demo1:

-name string

the greeting object. (default "everyone")

[root@zijie workspace]# go build demo1.go

[root@zijie workspace]# ./demo1 --help

usage of ./demo1:

-name string

the greeting object. (default "everyone")

1.2 自定義命令原始碼檔案的引數使用說明

對變數flag.usage重新賦值。flag.usage的型別是func(),即一種無引數宣告且無結果宣告的函式型別。

package main

import (

"flag"

"fmt"

"os"

)var name string

// 方式3:建立乙個私有的命令引數容器,不用全域性的flag.commandline變數,把對flag.strin**ar的呼叫替換為對cmdline.strin**ar呼叫,再把flag.parse()替換為cmdline.parse(os.args[1:])。其中的os.args[1:]指的就是我們給定的那些命令引數。這樣做就完全脫離了flag.commandline。

//var cmdline = flag.newflagset("question", flag.exitonerror)

func init()

// 方式3。

"name", "everyone", "the greeting object.")

flag.strin**ar(&name, "name", "everyone", "the greeting object.")

}func main()

// 方式3。

flag.parse()

fmt.printf("hello, %s!\n", name)

}

2.1 庫原始碼檔案介紹

庫原始碼檔案是不能被直接執行的原始碼檔案,它僅用於存放程式實體,這些程式實體可以被其他**使用(遵從 go 語言規範)

在 go 語言中,程式實體是變數、常量、函式、結構體和介面的統稱。我們總是會先宣告(或者說定義)程式實體,然後再去使用。程式實體的名字被統稱為識別符號。識別符號可以是任何 unicode 編碼可以表示的字母字元、數字以及下劃線「_」,但是其首字母不能是數字。

2.2 如何將命令原始碼檔案拆分到其他庫檔案

命令原始碼檔案

package main

import (

//flag包用於接收和解析命令引數

"flag"

//fmt包含有格式化i/o函式

"fmt"

)var name string

func init()

func main()

拆分主體

package main

import (

"flag"

)var name string

func init()

func main()

拆分hellow函式

package main

import "fmt"

func hello(name string)

[root@zijie bin]# ll /root/workspace/src/puzzlers/article3/q1/

總用量 8.0k

-rw-r--r-- 1 root root 182 3月 5 10:18 demo1.go

-rw-r--r-- 1 root root 91 3月 5 10:19 demo1_lib.go

[root@zijie bin]# go build puzzlers/article3/q1

[root@zijie bin]# ls

q1[root@zijie bin]# ./q1

hello, everyone!

[root@zijie bin]# ./q1 --name="zijie"

hello, zijie!

本文內容來自go語言核心36講

GO語言學習

sudo apt get install golang但是用ubuntu的庫安裝有幾個不好的地方 因此建議不要使用ubuntu的庫安裝golang環境 golang社群的安裝指導 wget tar c usr local zxf go1.6.2.linux amd64.tar.gz設定環境變數,修改...

Go語言學習

執行 go run go main函式 打包 go build 用於測試編譯包,在專案目錄下生成可執行檔案 有main包 go install 主要用來生成庫和工具。一是編譯包檔案 無main包 將編譯後的包檔案放到 pkg 目錄下 gopath pkg 二是編譯生成可執行檔案 有main包 將可執...

Go語言學習九 Go語言指標

go 語言中指標是很容易學習的,go 語言中使用指標可以更簡單的執行一些任務。接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。package main import f...