>  기사  >  백엔드 개발  >  Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?

Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?

angryTom
angryTom앞으로
2019-11-28 14:20:042448검색

프로그래밍 언어를 배울 때에는 기본 구문 외에도 실제 프로젝트에서 어떻게 사용하는지 이해하는 것이 더 중요합니다. 이 기사에서는 Go 언어 설치, 환경 구성, IDE 설치 및 Hello World 프로그램 개발에 대해 여러분과 함께 작업하겠습니다. 저는 이 Hello World 버전의 두 가지 버전인 GOPATH 및 Go 모듈 버전을 작성하겠습니다.

Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?

Q:
이 튜토리얼에 두 가지 버전이 있는 이유는 무엇인가요?
A:
인터넷에 있는 대부분의 Go 언어 Hello World는 GOPATH 버전을 간략하게 소개할 뿐입니다. 그러나 Go 버전 1.11부터 GOPATH를 사용하여 애플리케이션을 빌드하는 것은 더 이상 권장되지 않습니다. 즉, GOPATH는 쓸모없고 잘못된 접근 방식으로 간주됩니다.
올바른 접근 방식은 Go 모듈을 사용하는 것입니다. 따라서 초보자에게 튜토리얼에서 이 정보를 알려주고 권장되는 모범 사례 Go 모듈을 사용하도록 안내하는 것이 필요합니다.
아마 이것이 Hello World 튜토리얼과 인터넷에 있는 대부분의 튜토리얼의 차이점이기도 합니다. 개발자의 실제 활용에서부터 시작됩니다. Go 언어의 개발 역사와 모범 사례를 소개합니다.

Go 설치

Go 언어를 사용하여 개발하려면 먼저 Go를 설치해야 합니다.

1단계: Go 언어 공식 웹사이트 https://golang.org에 들어가세요. "이동 다운로드"를 클릭하세요. 네, 저 멍청한 그라운드호그 ^_^

Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?
2단계: 운영 체제에 따라 해당 소프트웨어 패키지를 다운로드하고 설치합니다.

Golang은 Windows, MacOS, Linux와 같은 주류 운영 체제를 지원합니다.
이 튜토리얼 시리즈에서는 MacOS 운영 체제를 사용할 것이므로 "Apple macOS"를 다운로드하기로 선택했습니다. 모든 사람은 자신의 운영 체제에 따라 다운로드해야 합니다.
Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?
3단계: Go를 설치합니다.

MacOS에서 Go를 설치하는 것은 매우 간단합니다. 표준 DMG 파일 설치이므로 "다음"만 누르면 됩니다.

4단계: Go가 성공적으로 설치되었는지 확인합니다.

"go version" 명령을 실행하면 "go version go1.12.9 darwin/amd64"와 비슷한 내용이 출력됩니다. 패키지에 오류가 발생하지 않는지 확인하십시오.

환경 구성

다른 개발 언어와 마찬가지로 Go를 설치한 후 이에 맞게 개발 환경을 구성해야 합니다. 예를 들어 Java에서는 JAVA_HOME, MAVEN 등을 구성해야 합니다.
Go 개발과 관련된 환경변수는 다음과 같습니다.

● GOROOT: GOROOT은 Go가 설치되는 디렉터리입니다.

●GOPATH: GOPATH는 go 프로젝트 코드를 저장합니다.

GOROOT

GOROOT는 Go의 설치 경로입니다. Mac에 Go를 설치하면 GOROOT가 자동으로 구성되며 경로는 /usr/local/go입니다. GOROOT는 대부분의 경우 수정이 필요하지 않습니다. 다음은 GOROOT 디렉터리의 내용입니다(일부 관련 없는 정보는 생략했습니다).

tree -L 2 /usr/local/go

./
├── bin
│   ├── go
│   └── gofmt
├── doc
│   ├── articles
│   └── docs.html
├── src
│   ├── errors
│   ├── fmt
│   ├── log
│   └── os

GOROOT 아래에 bin, doc, src 디렉터리가 있는 것을 볼 수 있습니다. bin 디렉토리에는 익숙한 gogofmt 도구가 포함되어 있습니다. GOOROOT는 Java의 JDK 디렉터리와 유사하다고 생각할 수 있습니다.

GOPATH

GOPATH는 개발 중 작업 디렉터리입니다. 용도:

● 컴파일된 바이너리 파일을 저장합니다.

● go get 및 go install 명령은 go 코드를 GOPATH에 다운로드합니다.

● 패키지를 가져올 때 경로를 검색하세요.

GOPATH에 특별한 주의가 필요합니다. Go 버전 1.11 이전에는 GOPATH가 필수였으며 모든 Go 프로젝트 코드는 GOPATH 디렉터리에 저장되어야 합니다. Go 버전 1.11 이후 GO는 공식적으로 Go 모듈을 도입했습니다. Go 모듈을 사용하여 관리되는 프로젝트는 GOPATH 디렉토리 외부에 배치될 수 있습니다.

GOPATH를 사용하면 GO는 다음 디렉터리에서 패키지를 검색합니다.

1.GOROOT/src: 이 디렉터리는 Go 표준 라이브러리 코드를 저장합니다.

2. GOPATH/src: 이 디렉터리에는 애플리케이션 자체 코드와 타사 종속성 코드가 저장됩니다.

다음 패키지가 프로그램에 도입되었다고 가정합니다.

import "github.com/tom/hello-go/foo/bar"

1단계: Go는 먼저 GOROOT의 scr 디렉토리에서 검색합니다. 분명히 이는 표준 라이브러리 패키지가 아니며 찾을 수 없습니다.

2단계: GOPATH의 src 디렉터리에서 계속 검색하세요. 정확히 말하면 GOPATH/src/github.com/tom/hello-go/foo/bar 디렉터리입니다. 디렉터리가 없으면 패키지를 찾을 수 없다는 오류가 보고됩니다. GOPATH를 사용하여 프로젝트를 관리하는 경우 패키지 찾기를 위한 GO 사양에 따라 Go 코드를 적절하게 저장하고 구성해야 합니다.

Go的这个“将所有代码都放置在GOPATH中”的设计,的确是和其他主流语言很不一样。不管Go官方是出于什么考虑,这个设计在实际使用中,的确给开发者造成了很大的不便和理解上的困难。甚至直接劝退了很多Go的初学者。

万幸的是,Go Module正式发布了。Go Module的发布解决了困扰Go语言长达十年的代码组织,依赖管理问题。

说明:关于GOPATH和Go Module的历史渊源,详细使用,会在另一篇进行说明。本文还是聚焦在Hello World入门。

另外,由于某些原因,Go的某些托管在Google仓库中的代码在国内是无法访问的。如果使用Go Module,我们可以设置GOPROXY,让Go从GOPROXYGo 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?代码,速度更快。国内用户可以设置GOPROXY为https://goproxy.cn,使用如下命令来设置GOPROXY:

export GOPROXY=https://goproxy.cn

关于环境配置,总结下来就是:

● 如果使用Go Module(推荐的),设置export GOPROXY=https://goproxy.cn。

● 如果使用GOPATH(遗留的,被废弃的),需要设置GOPATH到本地的某个目录。

安装IDE

目前比较常用的IDE有:

● Visual Studio Code

● GoLand

Visual Studio Code是微软开发的一款开源的,轻量级的文本编辑器。通过安装Go插件,可以用于Go语言的开发。GoLand是JetBrains公司开发的,专业的Go语言开发IDE。

推荐使用GoLand。很多人都说Visual Studio Code更轻量级,但作为一款每天都要重度使用的,需要靠它吃饭的工具,我们需要的是功能全面。尤其是当你需要完备的调试,需要强大的IDE智能辅助功能时,相信你会选择更专业的GoLand。

GoLand的官方主页为https://www.jetbrains.com/go/,点击“Download”即可下载

注意
GoLand使用的是和IntelliJ IDEA一样的框架,是用Java语言开发的。你需要安装Java环境才可以运行GoLand哦。

GoLand是收费软件,只有30天的试用期。试用期结束后,需要购买授权。当然在天朝,我们都习惯不花钱用软件。大家可以自行百度或google搜索一下。

Hello World(GOPATH版)

第一步:设置GOPATH

首先设置GOPATH,假设GOPATH设置为$HOME/worspace/go。

第二步:创建子目录

进入$HOME/workspace/go目录。新建子目录src。然后再src中新建子目录hello。在hello目录,新建一个hello-world.go文件:

目录结构应该如下所示:

$HOME
  workspace
    go
      src
        hello
          hello-world.go

第三步:创建hello-world.go文件:

package main
import "fmt"
func main() {
    fmt.Println("hello world")
}

第四步:执行go build

在$HOME/workspace/go目录执行命令:

go build

会生成一个可执行二进制文件:hello。如果是Windows系统,会生成hello.exe文件。
第五步:运行hello文件:

./hello

hello world

输出“hello world”。

Hello World(GO Module版)

第一步:创建项目的根目录

任意创建一个目录(可以不在GOPATH中),假设是$HOME/tmp/hello。

第二步:初始化Go模块

执行命令:

go mod init github.com/vangoleo/hello

该命令会将hello目录初始化为一个Go module,并生成一个$HOME/tmp/hello/go.mod文件。内容如下:

module github.com/vangoleo/hello

go 1.12

第三步:编写hello.go文件

编写文件$HOME/tmp/hello/hello.go:

package main

import (
    "fmt"
    "rsc.io/quote"
)

func main() {
    fmt.Println(quote.Hello())
}

第四步:编辑go.mod文件:

在实际项目中,都会使用到第三方库。可以在Go Module中添加项目的依赖。本例中,我们会添加一个quote依赖,该依赖会打印当前语言的“Hello World”,比如,如果是中文环境,会打印“你好,世界”。

编辑go.mod文件,添加quote依赖:

module github.com/vangoleo/hello

go 1.12

require rsc.io/quote v1.5.2

第五步:执行go build

执行go build,会生成可执行文件$HOME/tmp/hello/hello。

第六步:执行hello文件

执行hello文件,输出“你好,世界”。

推荐:go语言教程  

위 내용은 Go 언어로 된 Hello World의 두 가지 버전을 알고 계십니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제