החזרת מספר ערכים
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 56 מתוך 109.
פונקציות ב-Go יכולות להחזיר כמה ערכים בבת אחת, וזה שימושי מאוד להחזרת תוצאות וגם מידע על שגיאות.
צרו פונקציה שמחזירה גם מנה וגם שארית:
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}כשמריצים את התוכנית הזו, הפלט הוא:
7 ÷ 3 = 2 with remainder 1הפונקציה מחזירה שני ערכים מופרדים בפסיקים, ואנחנו שומרים את שני הערכים בעזרת כמה משתנים בהשמה.
אם דרושים לך רק חלק מהערכים המוחזרים, אפשר להשתמש במזהה הריק _ כדי להתעלם מהערכים שאינך צריך:
q, _ := divide(7, 3) // התעלם מהשארית
fmt.Println("Quotient:", q)השימוש ב־_ אומר ל־Go להתעלם מערך ההחזרה הזה. הדבר נדרש כשלא משתמשים בערך, מכיוון ש־Go אינה מאפשרת משתנים שאינם בשימוש.
אתגר
מתחיליםבאתגר הזה תתרגלו החזרה של כמה ערכים מפונקציה ב-Go.
יש לנו פונקציה בשם getPersonInfo שאמורה להחזיר את השם והגיל של אדם, והאם הוא תלמיד. המשימה שלכם היא להשלים את הפונקציה על ידי הוספת הוראת ההחזרה המתאימה.
נסו בעצמכם
package main
import "fmt"
// הפונקציה הזו צריכה להחזיר שלושה ערכים: name, age ו-isStudent
func getPersonInfo() (string, int, bool) {
// המשתנים כבר הוגדרו עבורכם
name := "Alex"
age := 25
isStudent := true
// TODO: החזירו את כל שלושת הערכים (name, age, isStudent)
}
func main() {
// קראו לפונקציה ושמרו את הערכים שהוחזרו
name, age, isStudent := getPersonInfo()
// הדפיסו את הערכים
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטותתרגלו בעצמכם: קומפיילר Go אונליין