הבנת תוכנית Minimal Go

הבנת תוכנית Minimal Go

הפופולריות של גו גדלה עם השנים. חברות נוספות מאמצות את Go, ומאגר המפתחים גדל ככל שיותר מקרי שימוש עבור השפה מתגלגלים. אנשים משתמשים בו כדי לבנות תוכניות החל מאפליקציות אינטרנט מהיר, פתרונות בלוקצ'יין וכלי למידת מכונה.





איפור של סרטון היום

מפתחים אוהבים את Go בגלל האקספרסיביות, קלות השימוש וביצועי השפה הגבוהים שלו. ל-Go יש עקומת למידה מהירה יותר מרוב השפות עם מערכת אקולוגית צומחת במהירות של חבילות וספריות.





תחילת העבודה עם Go

שפת התכנות Go אינו מותקן מראש ב-Windows, macOS או רוב ההפצות של Linux. תצטרך להתקין את Go כדי להפעיל תוכניות Go. אתה יכול לבדוק את הרשמי לך הורדות עמוד כדי להתקין אותו במחשב שלך. תרצה להתקין גרסה עדכנית של Go כדי להפיק את המרב מהשפה מאז גרסאות חדשות יותר כוללות יותר תכונות ועדכונים.





לאחר התקנת Go, תוכל לעבוד עם השפה, להפעיל קבצי Go, ליצור סביבות עבודה ולבנות פרויקטים ב-Go.

אתה יכול ליצור קובץ Go ולהפעיל תוכניות Go באמצעות הספרייה הרגילה. עם זאת, אם ברצונך להשתמש בספריות חיצוניות, תצטרך ליצור קובץ Go modules לניהול תלות, מעקב אחר גרסאות ועוד.



הקובץ Go Modules

ב-Go, מודול הוא אוסף של חבילות בעץ קבצים עם א go.mod קובץ בשורש. קובץ זה מגדיר את הנתיב של המודול, את נתיב הייבוא ​​ואת דרישות התלות לתהליך בנייה מוצלח.

  סקירה כללית של קובץ go.mod מודולים

אתה יכול ליצור קובץ מודולים של Go עם ה-Go נגד הפקודה וה חוֹם תת-פקודה לפני ציון הנתיב או הספרייה עבור הפרויקט.





go mod init project-directory 

הפקודה יוצרת את go.mod קוֹבֶץ. הטיעון לאחר ה חוֹם הפקודה היא נתיב המודול. נתיב המודול יכול להיות נתיב הקובץ בסביבת המארח שלך, או נתיב תחום המאגר.

כאשר אתה מתקין חבילות חיצוניות ותלות, go תעדכן את ה לִדרוֹשׁ הצהרה ב go.mod קובץ כדי לוודא שהם נכללים.





אתה יכול להשתמש ב מסודר תת-פקודה של נגד הפקודה להורדת כל התלות הנדרשת לתוכנית שלך.

איך אני מאפס את שלט הרוקו שלי
go mod tidy 

הפקודה תוריד את כל הייבוא ​​החסר לקובץ go modules.

מרחב השמות של חבילת Go

כל קובץ מקור של Go שייך לחבילה, ואתה יכול לגשת לקוד בתוך מרחב שמות של חבילה באמצעות המזהה שלו.

אתה יכול לקבל מרחבי שמות מרובים עבור החבילות שלך. לאחר יצירת תיקיה, יצרת מרחב שמות חדש. אתה יכול לגשת למרחבי שמות אחרים עם סימון נקודה (.).

// folder 1  
package folder

func Folder() any {
// some function body here
return 0;
}

הנה דוגמה לגישה למרחב שמות שונה ממרחב שמות אחר.

 
// folder 2, file in different namespace
package directory

func directory() {
// accessing the Folder function from the folder namespace
folderFunc := folder.Folder()
}

אתה תהיה חייב ל ייצא את המזהה על ידי שימוש באותיות רישיות בשם כדי לגשת למזהה במרחב שמות חיצוני.

הפונקציה העיקרית

ה רָאשִׁי הפונקציה משמשת כנקודת הכניסה לתוכניות Go. אתה לא יכול להפעיל קובץ או חבילה Go ללא הפונקציה הראשית. אתה יכול לקבל א רָאשִׁי פונקציה בכל מרחב שמות; עם זאת, חייב להיות לך רק אחד רָאשִׁי פונקציה בקובץ או בחבילה.

הנה דבר פשוט תוכנית שלום עולם להדגים את רָאשִׁי פוּנקצִיָה:

package main 
import "fmt"

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

קוד זה מכריז על ה רָאשִׁי לתפקד ב רָאשִׁי מרחב השמות של החבילה. לאחר מכן הוא מייבא את fmt חבילה ומשתמש ב- Println שיטה לפלט מחרוזת לקונסולה.

ייבוא ​​חבילות ב-Go

בהשוואה לשפות רבות אחרות, ייבוא ​​חבילות ותלות הוא קל. ה יְבוּא מילת מפתח מספקת פונקציונליות לייבוא ​​חבילות. אתה יכול לייבא חבילות מהספרייה הרגילה ותלות חיצונית עם ה יְבוּא מילת מפתח.

כיצד להקטין את גודל התצלומים
import "fmt" 

בדוגמה שלמעלה, אתה מייבא חבילה אחת. אתה יכול לייבא מספר חבילות. יהיה עליך לציין את החבילות בסוגריים לאחר ה יְבוּא הַצהָרָה.

import ( 
"fmt" // fmt for printing
"log" // log for logging
"net/http" // http for web applications
"encoding/json" // json for serializing and deserializing structs to JSON
)

הוספת תוחמים כלשהם בהצהרות ייבוא ​​אינה חוקית. אתה יכול להצהיר על שם מותאם אישית לייבוא ​​על ידי ציון השם המותאם לפני שם החבילה.

import ( 
"net/http"
encoder "encoding/json" // alias import here
)

הנה, ייבאת את json חבילה עם השם המותאם אישית as קוֹדַאִי . תצטרך לגשת לפונקציות והסוגים של החבילה עם השם המותאם אישית (מקודד).

להוריד סרטון מאתר

חלק מהחבילות דורשות ממך לייבא חבילות אחרות בגלל תופעות לוואי. תצטרך להוסיף את שם החבילה עם קו תחתון.

import ( 
_ "fmt" // side effects import
"log"
)

אתה לא יכול לגשת לחבילות שייבאת עבור תופעות לוואי, אבל תלות יכולה אם תגדיר אותן.

Go Run לעומת Go Build

אתה תשתמש ב לָרוּץ ו לִבנוֹת פקודות לקידור וביצוע קוד ה-Go שלך. יש להם פונקציות דומות, ואתה תשתמש בהם לביצוע חבילות.

ה לָרוּץ הפקודה היא שילוב של הוראות קומפילציה וביצוע. ה לָרוּץ הפקודה מבצעת את החבילה מבלי ליצור קובצי הפעלה בספריית העבודה. יהיה עליך לציין את שם הקובץ של שם החבילה לאחר ה- לָרוּץ פקודה.

go run file.go // executes a file 
go run packagename // executes the package

ה לִבנוֹת command היא פקודת קומפילציה שמרכיבה חבילה או קובץ לקובץ הפעלה בינארי.

אם אתה מפעיל את לִבנוֹת הפקודה ללא ארגומנטים כלשהם אחרי הקובץ או שם החבילה, go תיצור קובץ הפעלה בספריית השורש של החבילה שלך.

go build main.go // compiles a file  
go build "package name" // compiles a package

תצטרך להרכיב מחדש את התוכנית עם ה לִבנוֹת פקודה כאשר אתה משנה חבילה.

אתה יכול לציין ספרייה כארגומנט, ואת לִבנוֹת הפקודה תוציא את קובץ ההפעלה בספרייה שצוינה.

go build file -o "directory" 

יש כל כך הרבה שאתה יכול לעשות עם Go

ספריית התקן Go היא עוצמתית ואינטואיטיבית. אתה יכול לבנות במהירות יישומים מודרניים מבלי להתקין תלות חיצונית כלשהי.

מאז השחרור של Go ב-2009, מפתחים וחברות השתמשו בו למקרי שימוש שונים, במגוון תחומים. ההצלחה שלו היא בעיקר בגלל ש-Go מספק תחביר דמוי פייתון לצד ביצועים כמו C.