שימוש במצביעים בפונקציות
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 64 מתוך 109.
פונקציות יכולות לקבל משתנים ולשנות אותם באמצעות מצביעים. כך פונקציות יכולות לשנות את הערך המקורי, ולא רק עותק שלו.
צרו פונקציה שמשנה ערך באמצעות מצביע:
func main() {
number := 10
fmt.Println("Before:", number)
// העבר את הכתובת של number
doubleValue(&number)
fmt.Println("After:", number)
}
func doubleValue(num *int) {
// שנה את הערך בכתובת שאליה מצביע המצביע
*num = *num * 2
}הפלט מציג את הערך שהפונקציה שינתה:
Before: 10
After: 20כשאנחנו מעבירים את &number, הפונקציה מקבלת מצביע ויכולה לשנות את המשתנה המקורי.
אתגר
מתחיליםבאתגר הזה תתרגל שימוש במצביעים בפונקציות. עליך להשלים פונקציה שמקבלת מצביע למחרוזת ומשנה את ערך המחרוזת לאותיות גדולות.
הפונקציה makeUppercase כבר מוגדרת עבורך. המשימה שלך היא לשנות את המחרוזת שאליה המצביע מצביע באמצעות הפונקציה strings.ToUpper().
נסו בעצמכם
package main
import (
"fmt"
"strings"
)
// makeUppercase מקבלת מצביע למחרוזת ומשנה את המחרוזת לאותיות רישיות
func makeUppercase(strPtr *string) {
// TODO: השתמשו ב-strings.ToUpper() כדי לשנות את המחרוזת שאליה strPtr מצביע
// רמז: צריך לבצע הפניה עקיפה למצביע כדי לגשת לערך המחרוזת
? = strings.ToUpper(?)
}
func main() {
// כבר יש לנו משתנה מסוג מחרוזת
message := "hello, world"
// הדפיסו את ההודעה המקורית
fmt.Printf("Original message: %s\n", message)
// קראו ל-makeUppercase עם הכתובת של message
makeUppercase(&message)
// הדפיסו את ההודעה ששונתה
fmt.Printf("Modified message: %s\n", message)
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
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`סיכום - קבלת החלטות9מצביעים
מהו מצביע?הצהרת משתני מצביעאופרטור קבלת הכתובתביטול הפניה של מצביעיםשימוש במצביעים בפונקציותמצביעי Nilסיכום – הבנת מצביעיםתרגלו בעצמכם: קומפיילר Go אונליין