เริ่มต้นโครงการใหม่

Go:
เริ่มต้นโครงการใหม่

วิธีการ:

ก่อนอื่น, ให้แน่ใจว่าคุณได้ติดตั้ง Go โดยการรัน go version ในเทอร์มินัลของคุณ คุณควรจะเห็นเวอร์ชันของ Go ที่คุณได้ติดตั้งเป็นผลลัพธ์ ต่อไป, เรามาเริ่มโปรเจคใหม่กัน เปลี่ยนไปยังพื้นที่ทำงานของคุณและรัน:

mkdir hello-world
cd hello-world

สิ่งนี้สร้างและพาคุณเข้าไปในไดเรกทอรีใหม่สำหรับโปรเจคของคุณ ตอนนี้, เริ่มต้นโมดูล:

go mod init example.com/hello-world

เปลี่ยน example.com/hello-world เป็นเส้นทางโมดูลของคุณ คำสั่งนี้สร้างไฟล์ go.mod ในไดเรกทอรีของคุณ, ส่งสัญญาณการเริ่มต้นของโมดูล Go ใหม่ นี่คือตัวอย่างของหน้าตา go.mod:

module example.com/hello-world

go 1.18

go.mod ติดตามการพึ่งพากันของโปรเจคของคุณ ตอนนี้, สร้างไฟล์ main.go:

touch main.go

เปิด main.go ในเอดิเตอร์ที่คุณชื่นชอบและเพิ่มโค้ดต่อไปนี้เพื่อพิมพ์ “Hello, World!”:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

เพื่อรันโปรแกรมของคุณ, กลับไปที่เทอร์มินัลและปฏิบัติการ:

go run main.go

คุณควรจะเห็น:

Hello, World!

ขอแสดงความยินดี! คุณเพิ่งเริ่มต้นโปรเจค Go ใหม่และรันโปรแกรม Go ครั้งแรกของคุณ

ศึกษาเพิ่มเติม

ความพยายามในการนำเสนอโมดูลเป็นมาตรฐานสำหรับการจัดการการพึ่งพากันใน Go เป็นการเปลี่ยนแปลงที่สำคัญในระบบนิเวศ Go ที่ได้รับการยอมรับอย่างเป็นทางการใน Go 1.11 ก่อนมีโมดูล, ผู้พัฒนา Go พึ่งพาตัวแปรสภาพแวดล้อม GOPATH เพื่อจัดการการพึ่งพากัน, ซึ่งไม่จัดการได้ง่ายและบางครั้งก็นำไปสู่ “dependency hell” ที่มีชื่อเสียง

โมดูลให้วิธีการที่แยกออกเพื่อจัดการการพึ่งพากันของโปรเจค, การตั้งเวอร์ชัน, และเป็นการย้ายไปสู่การทำให้โปรเจค Go มีความเป็นอิสระและพกพาได้มากขึ้น แต่ละโมดูลระบุการพึ่งพากันซึ่ง Go ติดตามในไฟล์ go.mod, ทำให้การจัดการการพึ่งพาง่ายขึ้นในสภาพแวดล้อมและขั้นตอนการพัฒนาที่แตกต่างกัน

อย่างไรก็ตาม, ควรทราบว่าแม้ Go โมดูลจะเป็นมาตรฐานในปัจจุบัน, บางโครงการเก่าอาจยังใช้ GOPATH สำหรับโปรเจคใหม่ ๆ ส่วนใหญ่, โมดูลเสนอระบบการจัดการที่ง่ายดายและมีประสิทธิภาพมากขึ้น, แต่เข้าใจ GOPATH อาจเป็นประโยชน์สำหรับการบำรุงรักษาหรือมีส่วนร่วมในฐานโค้ด Go เก่า

ในแง่ของทางเลือก, แม้ Go โมดูลเป็นมาตรฐาน de facto แล้ว, ชุมชน Go ได้ทดลองกับเครื่องมือจัดการการพึ่งพาอื่น ๆ เช่น dep ในอดีต อย่างไรก็ตาม, เหล่านี้ส่วนใหญ่ได้ถูกแทนที่ด้วยการสนับสนุนโมดูลอย่างเป็นทางการที่รวมอยู่ในเครื่องมือชุด Go