פרוסות לעומת מערכים
שיעור 2 מתוך 21 בקורס פרוסות ומפות ב-GoLang של Coddy.
בשפות תכנות אחרות, אנחנו נתקלים לעיתים קרובות במערכים דינמיים. ב-Go הם נקראים פרוסות, ומאפשרים לנו להוסיף או להסיר איברים באופן דינמי. עם זאת, חשוב לציין שפרוסה עצמה אינה מאחסנת איברים; במקום זאת, היא משמשת כחלון למערך.
עכשיו נבחן את ההבדל בין פרוסה למערך באמצעות דוגמה. נניח שיש לנו מערך עם שלושה איברים:
arr := [3]string{"Python", "Go", "Rust"}כידוע, מערך הוא טיפוס אוסף בגודל קבוע, ולכן אי אפשר להוסיף לו איברים. אם ננסה להוסיף איבר חדש, יופיעו שגיאות.
כאן נכנסות לתמונה הפרוסות, שנועדו לתת מענה למגבלה הזאת. נבין זאת באמצעות דוגמה:
var books = []string{"SQL", "Java", "C++"}כפי שאפשר לראות, אנחנו מגדירים את הפרוסה <strong>books</strong> באותו אופן כמו מערך רגיל, כשההבדל היחיד הוא שאיננו מגדירים את האורך.
כך אפשר להוסיף או להסיר איברים באופן דינמי בזמן הריצה — פעולה שאי אפשר לבצע עם מערכים.
הגישה לאיברים בפרוסה דומה לגישה לאיברים במערכים, ומתבצעת באמצעות אינדקסים:
fmt.Println(books[1]) // Javaב-Go, פרוסות מציעות גמישות בעבודה עם אוספים, בכך שהן מאפשרות לבצע בהם שינויים דינמיים, בניגוד למערכים בעלי מבנה קבוע.
אתגר
קל- הגדר פרוסה עם הרכיבים הבאים, לפי הסדר: "Learn Go", "Learn Python", "Learn Java", "Coddy.tech".
- הדפס למסך את "Learn Go" ואת "Coddy.tech" באמצעות אינדקסים.
- אתה יכול לתת שם לפרוסה כרצונך.
נסו בעצמכם
package main
import (
"fmt"
)
func main() {
// הקוד שלך כאן
}
כל השיעורים ביחידה פרוסות ומפות ב-GoLang
2פרוסות
פרוסות לעומת מערכיםהוספת איבר לפרוסהחיתוךדרכים לחיתוךחיתוך מחדשקיבולת פרוסהקיבולת מרביתמעבר על פרוסהאתגר סיכום #13מה מסתתר מאחורי ה-Slice
Slice הוא מערךיצירת Slice באמצעות makeהעתקת Sliceמחיקת איבראתגר סיכום #1אתגר סיכום #2תרגלו בעצמכם: קומפיילר Go אונליין