Menu
Coddy logo textTech

שימוש במצביעים בפונקציות

חלק מהיחידה יסודות במסלול ה-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, הפונקציה מקבלת מצביע ויכולה לשנות את המשתנה המקורי.

challenge icon

אתגר

מתחילים

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

הפונקציה 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)
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Go אונליין