這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Version包只包含了一個version.go:
package versionimport "fmt"// Version represents the current version of Delve.type Version struct { Major string Minor string Patch string Metadata string Build string}var ( // DelveVersion is the current version of Delve. DelveVersion = Version{Major: "0", Minor: "11", Patch: "0", Metadata: "alpha"})func (v Version) String() string { return fmt.Sprintf("Version: %s.%s.%s-%s\nBuild: %s", v.Major, v.Minor, v.Patch, v.Metadata, v.Build)}
Version包定義了一個Version類型的變數:DelveVersion。而Version類型的String()方法就是用來構造執行dlv version命令時,輸出的字串(cmd/dlv/cmds/commands.go):
......// 'version' subcommand. versionCommand := &cobra.Command{ Use: "version", Short: "Prints version.", Run: func(cmd *cobra.Command, args []string) { fmt.Printf("Delve Debugger\n%s\n", version.DelveVersion) }, }......
執行dlv version命令:
# dlv versionDelve DebuggerVersion: 0.11.0-alphaBuild: