שיעורי מודול (3/5)
קבועים ושיוטה
קבועים הם ערכים בלתי ניתנים לשינוי הידועים בזמן ההידור. בגו הם
הוכרז עם const וניתן להקלד או לא להקליד. לא מודפסים יש א
כוח על: הם מסתגלים לסוג הנדרש על ידי ההקשר, וחוסכים ממך
מהצורך לכתוב המרות מפורשות.
תחביר בסיסי
const PI = 3.14
const MaxRetry int = 5
const Name = "eLearner"MaxRetry מוקלדת (int): אתה יכול להקצות אותו רק ל-int.
PI ו-Name הם לא מודפסים: הם מתנהגים כמו "מילוליים" ומסתגלים ל
ההקשר.
const PI = 3.14
var f float32 = PI // ok: PI è non tipata, diventa float32
var d float64 = PI // okconst בלוקים
אתה יכול לקבץ כמה קבועים בבלוק:
const (
StateInitial = "INIT"
StateReady = "READY"
StateError = "ERROR"
)iota: מונה הספירה
בתוך בלוק const, המזהה המיוחד iota מתחיל ב-0
ומעלה ב-1 בכל שורה. זהו הביטוי לביצוע ספירות:
const (
Monday = iota // 0
Tuesday // 1
Wednesday // 2
Thursday // 3
Friday // 4
)שורות עוקבות יורשות את הביטוי אם הן לא מספקות אחד.
זו הסיבה שכתיבת Tuesday מספיקה מבלי לחזור על = iota.
דפוסים עם הבעות
iota יכול להופיע בתוך ביטויים שרירותיים:
const (
KB = 1 << (10 * (iota + 1)) // 1 << 10 = 1024
MB // 1 << 20
GB // 1 << 30
TB // 1 << 40
)דילוג על ערך
אם אינך רוצה להקצות ערך לשורה (כי אתה רוצה שiota
הגדל בכל מקרה), השתמש במזהה הריק _:
const (
_ = iota // scarta 0
KB // 1
MB // 2
)התור שלך
הכריז על PI קבוע עם ערך 3.14 ברמת החבילה, ולאחר מכן הדפס אותו בתוך הראשי.
הצג רמז
`const PI = 3.14` עובר ברמת החבילה, מחוץ לראשי.
הפתרון זמין לאחר 3 ניסיונות
הגדר בלוק const עם ימי השבוע (שני, שלישי, רביעי) ממוספרים מ-1 באמצעות iota.
הצג רמז
השתמש ב-'iota + 1' בשורה הראשונה של הבלוק; השורות הבאות יורשות את הביטוי.
הפתרון זמין לאחר 3 ניסיונות
מה התוכנית הזו מדפיסה?
const (
A = iota * 2
B
C
)
fmt.Println(A, B, C)לְסַכֵּם
constעבור ערכים בלתי ניתנים לשינוי הידועים בזמן ההידור.- קבועים לא מודפסים מסתגלים להקשר: אין צורך בהמרה.
const ( ... )חוסם ערכים הקשורים לקבוצה.iotaמתחיל ב-0 בכל בלוק ומעלה שורה אחר שורה.- תבניות: enum (
= iota), מסכת סיביות (= 1 << iota), יחידות (= 1 << (10*iota)).