הוספת איבר לפרוסה
שיעור 3 מתוך 21 בקורס פרוסות ומפות ב-GoLang של Coddy.
בשיעורים האחרונים דנו בכך שההבדל בין פרוסה למערך טמון בגודל שלהם, דבר שמתברר כשבודקים את האורך.
לדוגמה, אם נגדיר פרוסה כך:
nums := []int{23, 5, 6}בפרוסה שלנו יש שלושה איברים, ובדיקת האורך באמצעות הפונקציה <strong>len()</strong> מחזירה 3:
nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3אם נוסיף איברים לפרוסה ונבדוק את הגודל, נקבל את הגודל החדש:
nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5לעומת זאת, למערך יש גודל קבוע. לדוגמה:
nums := [4]int{23}
fmt.Println(len(nums)) // 4אף שיש בו פחות מ-4 איברים, האורך נשאר קבוע.
מוסיפים איברים לפרוסה באמצעות <strong>append</strong>:
books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)הרצת הקוד מחזירה:
[Python Rust Golang]ב-Golang, פרוסות מגיעות עם פונקציות מובנות, ו-<strong>append()</strong> היא אחת מהן, ומאפשרת לנו להוסיף איברים חדשים לפרוסה קיימת.
שימו לב שבגלל הגודל הדינמי של פרוסות, אי אפשר להשתמש באינדקס כדי להוסיף איברים (הפקודה
<strong>books[2] = "Golang"</strong>לא תעבוד).
אתגר
קלכתוב תוכנית שמקבלת 3 קלטים מהמשתמש ומוסיפה אותם לפרוסה בשם <strong>coddy</strong> כפי שהיא מוגדרת בקוד הנתון. בצע את השלבים הבאים:
- הדפס את האורך של הפרוסה לפני הוספת איברים.
- הוסף איברים לפרוסה.
- הדפס את הפרוסה ואת האורך המעודכן לאחר הוספת האיברים (בשורות נפרדות).
נסו בעצמכם
package main
import "fmt"
func main() {
// קבלו את הקלט מהמשתמש. אל תשנו את זה!
var first, second, third string
fmt.Scan(&first)
fmt.Scan(&second)
fmt.Scan(&third)
// הגדירו את ה-Slice
coddy := []string {"SQL","Rust","C#","Golang"}
// הדפיסו את האורך
// הוסיפו איבר ל-Slice
// הדפיסו את ה-slice ואת האורך המעודכן
}כל השיעורים ביחידה פרוסות ומפות ב-GoLang
2פרוסות
פרוסות לעומת מערכיםהוספת איבר לפרוסהחיתוךדרכים לחיתוךחיתוך מחדשקיבולת פרוסהקיבולת מרביתמעבר על פרוסהאתגר סיכום #13מה מסתתר מאחורי ה-Slice
Slice הוא מערךיצירת Slice באמצעות makeהעתקת Sliceמחיקת איבראתגר סיכום #1אתגר סיכום #2תרגלו בעצמכם: קומפיילר Go אונליין