《Go語言教學系列》Hello World

發布: 2023-07-24 17:22:27
轉載
541 人瀏覽過

#這是《Golang 教學系列》的第二篇。如果還沒有,你可能需要先看一下我們的上一篇教學 Golang 介紹和環境安裝 以了解一下 Golang 是什麼以及如何下載 Golang。

這篇教學是基於 Go 1.16 以上的版本。

學習程式語言沒有比讓自己滿手沾滿程式碼的血 ? 更有效的方法了。讓我們一起開始第一個 Go 程式。 (First Blood)

設定開發環境

讓我們先建立一個寫 hello world 程式的資料夾。請開啟命令列然後執行下面的命令:

mkdir ~/Desktop/learngo/
登入後複製

上面的命令將會在使用者桌面建立一個名為learngo的資料夾(譯者開發環境為 Macbook Pro)。你可以在任意位置建立目錄編寫程式碼。

Hello World

使用你喜愛的文字編輯器在learngo資料夾中建立一個名為main.go的檔案並寫入以下內容:

package main import "fmt" func main() { fmt.Println("Hello World") }
登入後複製
登入後複製

在 Go 中将包含main函数的文件命名为main.go是约定俗称的,但是其他名称也是可以使用。

运行一个程序

有几种不同的方式来运行 Go 程序。让我们一一看一下。

1.go install

第一个运行 Go 程序的方法是使用go install命令。让我们来使用cd命令进入刚创建的learngo目录

cd ~/Desktop/learngo/
登入後複製
登入後複製

接着运行下面的命令。

go install
登入後複製

上面的命令将编译当前程序并将其安装(拷贝)二进制可执行文件到~/go/bin目录。二进制可执行文件的名字是包含main.go文件的文件夹名。在我们示例中,它将被命名为learngo

当你尝试安装程序时,你可能会遇到以下错误。

go: cannot find main module; see 'go help modules'
登入後複製

上面的错误实际上意味着,go install无法找到 main 模块,这是因为我们没有初始化 go modules,我们使用以下命令初始化模块:

go mod init github.com/youngjuning/learngo
登入後複製

上面的命令会在learngo目录下创建一个go.mod文件,该文件是程序模块定义的地方,作用类似于 Node 的package.json文件。然后我再执行go install便可以成功。

你可以在命令行输入ls -al ~/go/bin/learngo,然后你会发现go install实际上是把二进制可执行文件放在了~/go/bin中。

现在让我们运行编译后的二进制可执行文件。

~/go/bin/learngo
登入後複製

上面的命令将运行learngo并打印出以下内容:

Hello World
登入後複製
登入後複製
登入後複製

恭喜你!你已经成功地运行了你的第一个 Go 程序。

如果你不想每次都输入完整的~/go/bin/learngo路径来运行程序,你可以添加~/go/bin/到你的PATH中。

export GOPATH=~/.go export PATH=${PATH}:$GOPATH/bin
登入後複製

现在你可以在命令行中只输入learngo来运行程序。

你可能想知道,當learngo目錄包含多個 Go 檔案而不只是只有main.go時會發生什麼。在這種情況下,go install將如何運作?請繼續往下看,我們將在了解軟體包和 Go 模組時討論這些內容。

2. go build

#執行程式的第二個選項是使用go buildgo buildgo install非常相似,不同之處在於它不會將編譯的二進位檔案安裝(拷貝)到路徑~/go/bin/,而是在go build所在的資料夾下建立二進位檔案:

在命令行输入以下命令来切换当前目录到learngo

cd ~/Desktop/learngo/
登入後複製
登入後複製

然后输入下面的命令:

go build
登入後複製

上面的命令将会在当前目录下创建一个名为learngo的二进制可执行文件。ls -al命令可以证实名为learngo的文件被创建了。

输入./learngo来运行程序,将会输入和前面一样的内容:

Hello World
登入後複製
登入後複製
登入後複製

到此,我们用go build也成功地运行了我们的第一个 Go 程序 ?

3. go run

第三个运行程序的方法是使用go run命令。

在命令行输入cd ~/Desktop/learngo命令来改变当前目录为learngo

然后输入以下命令。

go run main.go
登入後複製

输入以上命令后,我们也可以看到一样的输出:

Hello World
登入後複製
登入後複製
登入後複製

go run命令和go buildgo install命令之间的一个细微差别是,go run要求使用.go文件的名称作为参数。

在引擎盖下,go run的工作原理与go build非常相似。无需将程序编译并安装到当前目录,而是将文件编译到一个临时位置并从该位置运行文件。如果你想知道go run将文件编译到的位置,请使用--work参数运行go run

go run --work main.go
登入後複製

在我的场景中,运行以上命令会输出下面的内容:

WORK=/var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434 Hello World
登入後複製

WORK的值表示程序将被编译到的一个临时位置。

就我的场景而言,程序被编译到/var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434。这可能因你的情况而异 ?

4. Go Playground

运行程序的最后一种方法是使用 go playground。尽管此方法有一些限制,但由于我们可以使用浏览器并且不需要在本地本地安装 Go:我已经为 Hello World 程序创建了一个 playground。点击此处 以在线运行该程序。

你还可以使用 Go Playground 与他人分享你的源代码。

既然我们知道 4 种不同的方式来运行程序,那么你可能会很困惑该使用哪种方法。答案是,当我想快速检查逻辑或找出标准库函数如何工作时,通常使用 playground。在大多数其他情况下,我更喜欢go install,因为它为我提供了从终端中任何目录运行程序的选项,因为它将所有程序编译到标准的~/go/bin/路径。

对 Hello World 程序的简短解析

这是我们刚刚创建的简单的 hello world 程序:

package main import "fmt" func main() { fmt.Println("Hello World") }
登入後複製
登入後複製

我们将简要讨论该程序的每一行的作用。在接下来的教程中,我们将深入研究程序的每个部分。

「package main」- 每个 go 文件都必须以package name开始。Packages 用于提供代码分隔和可重用性。此处使用包名称main。主要功能应始终保留在 main package 中。

“import "fmt"”-import語句用於導入其他軟體包。在我們的例子中,fmt套件被導入,它將在main函數中用於將文字列印到標準輸出。

“func main()”-func關鍵字標記函數的開始。main是一個特殊函數。程式從main函數開始執行。大括號{}表示main函數的開始和結束。

“fmt.Println("Hello World")”-fmt軟體包的PrintIn函數用於將文字寫入標準輸出。package.function()是在套件中呼叫函數的語法。

#

以上是《Go語言教學系列》Hello World的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:Go语言进阶学习
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!