Menu
Coddy logo textTech

פונקציה חדשה

שיעור 3 מתוך 19 בקורס פונקציות ומצביעים ב-Golang של Coddy.

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

ב-Go יש לנו פונקציה שיוצרת מקום ללא שם בזיכרון, ואנחנו עושים זאת בעזרת הפונקציה new(). התחביר הוא כדלקמן:

coddy := new(string)

כאן יצרנו אובייקט בשם coddy ובסוג string, והפונקציה new() מחזירה מצביע לאובייקט (מקום) הזה.

אם נדפיס את השם, נקבל את כתובת הזיכרון של המקום הזה:

fmt.Println("Value:", coddy)

התוצאה תהיה:

Value: 0xc000014070

אנחנו יכולים להקצות מחדש ערך למצביע הזה כך:

coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)

התוצאה תהיה:

Value: Learn To Code with coddy

שימו לב שכאשר אנחנו יוצרים מצביעים באמצעות הפונקציה new(), ערך ברירת המחדל אינו nil. הוא תלוי בסוג, בדיוק כמו משתנים. אם הסוג הוא int, ערך ברירת המחדל הוא 0; עבור string, זו מחרוזת ריקה; ועבור boolean, זה false.

challenge icon

אתגר

קל

כתבו תוכנית שקולטת קלט מהמשתמש ומבצעת את הפעולות הבאות:

  1. יוצרת מצביע מסוג int באמצעות הפונקציה new().
  2. מדפיסה את ערך ברירת המחדל של המצביע.
  3. משייכת למצביע את הערך שהמשתמש הזין.
  4. מדפיסה את ערך המצביע לאחר ההשמה.

נסו בעצמכם

package main

import (
	"fmt"
)

func main() {
	// קלטו ערך מהמשתמש. אל תשנו את זה!
	var num int
	fmt.Scanln(&num)

	// צרו מצביע מסוג int באמצעות הפונקציה new().
 

	// מדפיס את ערך ברירת המחדל של המצביע.
    fmt.Println("Default value of the pointer:", ?)

	// מקצה למצביע הזה את הערך שהמשתמש הזין
 

	// מדפיס את ערך המצביע לאחר ההקצאה.
    fmt.Println("Value of the pointer after assignment:", ?)
}

כל השיעורים ביחידה פונקציות ומצביעים ב-Golang

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