מעבר על פרוסה
שיעור 9 מתוך 21 בקורס פרוסות ומפות ב-GoLang של Coddy.
בדיוק כמו שעשינו עם מערכים, אפשר לעבור על פרוסה באמצעות לולאת for. ניצור דוגמה שמדגימה זאת:
נניח שיש לנו פרוסה כזאת:
str := []string{"Python","Golang","Rust","JavaScript","Haskell"}
for i := 0; i < len(str); i++ {
fmt.Println(i, str[i])
}כאן אנחנו עוברים מ־0 עד לאורך הפרוסה באמצעות הפונקציה <strong>len()</strong>, ונקבל את התוצאה:
0 Python
1 Golang
2 Rust
3 JavaScript
4 Haskellאין כאן שום דבר חדש עבורנו, אבל נשתמש במילת מפתח חדשה בשם <strong>range</strong>, שתאפשר לנו לעבור על הפרוסה. התחביר אמור להיות כך:
for index, value := range str {
fmt.Println(index, value)
}בדוגמה שלנו, <strong>range</strong> משמשת למעבר על איברי הפרוסה <strong>str</strong>, ומספקת בכל איטרציה גם את האינדקס וגם את הערך שבאינדקס הזה.
ואמורה להתקבל אותה תוצאה כמו קודם:
0 Python
1 Golang
2 Rust
3 JavaScript
4 Haskellאם אנחנו לא צריכים את האינדקס, אפשר להשמיט אותו באמצעות קו תחתון במקום מפתח:
for _, value := range str {
fmt.Println(value)
}
אתגר
קלבקוד הנתון, אנחנו מגדירים פרוסה של מספרים שלמים.
- השתמשו במילת המפתח
<strong>range</strong>כדי לעבור על הפרוסה ולבדוק כל מספר כדי לקבוע אם הוא זוגי - אם מספר הוא זוגי, הוסיפו אותו למשתנה שיכיל את סכום המספרים הזוגיים
נסו בעצמכם
package main
import "fmt"
func main() {
// פרוסה של 10 מספרים. אין לשנות זאת!
numbers := []int{45, 60, 3, 4, 5, 80, 7, 8, 9, 10}
// אתחלו משתנה שיחזיק את סכום המספרים הזוגיים
var sum int
// עברו על הפרוסה
// בדקו אם המספר זוגי
// אם כן, הוסיפו אותו לסכום
// הדפיסו את הסכום למסך
fmt.Println("Sum of even numbers:", sum)
}כל השיעורים ביחידה פרוסות ומפות ב-GoLang
3מה מסתתר מאחורי ה-Slice
Slice הוא מערךיצירת Slice באמצעות makeהעתקת Sliceמחיקת איבראתגר סיכום #1אתגר סיכום #2תרגלו בעצמכם: קומפיילר Go אונליין