Menu
Coddy logo textTech

חיתוך מחדש

שיעור 6 מתוך 21 בקורס פרוסות ומפות ב-GoLang של Coddy.

ב-Go יש משהו שנקרא חיתוך מחדש, כלומר ביצוע חיתוך נוסף של תת-הפרוסה. ניקח דוגמה כדי להבין זאת היטב:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}

כאן אנחנו מגדירים פרוסה עם 7 איברים. בואו נחתוך אותה ונקבל רק את 4 האיברים הראשונים מתוך 7:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println(newS)

פעולה זו תחזיר פרוסה עם 4 איברים:

[games coffee code play]

חיתוך מחדש הוא היכולת לבצע חיתוך נוסף של הפרוסה newS שלנו, כך:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS2 := newS[2:]
fmt.Println("Reslicing: ", newS2)

ונקבל:

Slicing:  [games coffee code play]
Reslicing:  [code play]

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

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println(newS[2])

בדוגמה הזו אנחנו מקבלים את האיבר באינדקס 2:

Slicing:  [games coffee code play]
code

באותו אופן, אנחנו יכולים לשנות את הערך:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println("Before Modification :", newS[2])
newS[2] = "sleep"
fmt.Println("After Modification :", newS[2])

והפלט אמור להיות:

Slicing:  [games coffee code play]
Before Modification : code
After Modification : sleep

כמו כן, באותו אופן, אנחנו יכולים להוסיף איברים לפרוסה:

newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS = append(newS, "sleep")
fmt.Println("After Modification :", newS)

והתוצאה תהיה:

Slicing:  [games coffee code play]
After Modification : [games coffee code play sleep]
challenge icon

אתגר

קל

בקוד שסופק, אנחנו מגדירים slice מסוג מחרוזת.

  • צרו slice נוסף בשם "fruits" ואחסנו בו את חמשת האיברים האחרונים של ה-slice הנתון.
  • הדפיסו את ה-slice "fruits" למסך.
  • הוסיפו שני איברים ל-slice "fruits": <strong>"pear"</strong> ו-<strong>"pineapple"</strong>.
  • הדפיסו את ה-slice המעודכן "fruits".

נסו בעצמכם

package main

import "fmt"

func main() {
    // הגדר את ה-Slice
	str:= []string{"apple", "banana", "cherry", "date", "fig", "grape", "kiwi", "lemon", "mango"}
	// קבל את 5 האיברים האחרונים
	 
	// הדפס את ה-Slice למסך
 
	// הוסף שני איברים ל-slice
 
	// הדפס את ה-slice המעודכן
 

}

כל השיעורים ביחידה פרוסות ומפות ב-GoLang

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