חיתוך מחדש
שיעור 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]אתגר
קלבקוד שסופק, אנחנו מגדירים 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
3מה מסתתר מאחורי ה-Slice
Slice הוא מערךיצירת Slice באמצעות makeהעתקת Sliceמחיקת איבראתגר סיכום #1אתגר סיכום #2תרגלו בעצמכם: קומפיילר Go אונליין