הסטטיסטיקה של היום

תרגילים שהושלמו
-
תווים מוקלדים מילים מוקלדות
-
זמן האימון
-

סטטיסטיקה כוללת

תרגילים שהושלמו
-
תווים מוקלדים מילים מוקלדות
-
זמן האימון
-

שיעור הקלדה: תכנות בשפה Go

הקלדה עיוורת חשובה בתכנות. שימוש בטכניקות הקלדה מהירה מאפשר לך לכתוב קוד ביעילות רבה יותר בשפת התכנות Go.

בואו ללמוד עוד על השפה Go ועל הקלדה עיוורת בעת תכנות ב-Go.

תכנות ב-Go והקלדה עיוורת

תכנות ב-Go והקלדה עיוורת הולכים ביחד. ל-Go יש כללים ברורים של תחביר ותווים מיוחדים שיכולים להיות מאתגרים כאשר מקלידים מהר. טעות אחת בסוגריים מסולסלים או באופרטור עלולה לגרום לשגיאת קומפילציה.

מה מאפיין את התחביר של Go?

Go היא שפה מהודרת אנגלית: compiled language עם סגנון נקי ומינימליסטי. הקוד תמיד מתחיל בהצהרת package. אפשר לייבא חבילות בנפרד או לקבץ את הצהרות הייבוא בבלוק. פונקציות מוכרזות עם מילת המפתח func ומשתמשות בסוגריים מסולסלים {}. ההזחה אינה קובעת את גבולות הבלוקים ב-Go; הכלי go fmt מעצב את הקוד לפי מוסכמות אחידות. בדרך כלל משמיטים נקודה-פסיק מקוד המקור, והמהדר מוסיף אותה במעברי שורה לפי כללים מוגדרים.

package main

import "fmt"

func main() {
 fmt.Println("Hello, Go")
}

תווים שדורשים תשומת לב

בקוד Go מופיעים שוב ושוב: סוגריים מסולסלים {}, עגולים (), מרובעים [], מירכאות " ו-backticks `, אופרטור := וחץ ערוצים <-.

משתנים והצהרות

Go מבדילה בין הצהרה עם var לבין הצהרה מקוצרת על משתנה :=. זהו אופרטור בסיסי בשפה.

var count int = 10
message := "typed correctly"

מבני בקרה

ב-Go קיימים if, for ו-switch. אין while. יש להקליד במדויק את האופרטורים ==, !=, <, > ו-++.

for i := 0; i < 5; i++ {
 if i%2 == 0 {
 fmt.Println("even")
 }
}

פונקציות והחזרת ערכים מרובים

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

func divide(a, b int) (int, error) {
 if b == 0 {
 return 0, fmt.Errorf("division by zero")
 }
 return a/b, nil
}

result, err := divide(10, 2)

Slices, Maps וליטראלים

סוגריים מרובעים [] וסוגריים מסולסלים {} מופיעים לעיתים קרובות. ב-Maps משתמשים גם בנקודתיים : בין מפתח לערך.

nums := []int{1, 2, 3}
scores := map[string]int{"alice": 5, "bob": 7}

Structs ומתודות

סוג struct מאגד נתונים. מתודות מוגדרות עם receiver ונקראות באמצעות נקודה ..

type User struct {
 Name string
}

func (u User) Greet() string {
 return "Hello " + u.Name
}

u := User{Name: "A"}
fmt.Println(u.Greet())

Interfaces

ב-Go, interfaces מתקיימים באופן מרומז, ללא מילת מפתח כמו implements.

type Stringer interface {
 String() string
}

קונקורנטיות וערוצים

חץ הערוצים <- הוא ייחודי ל-Go. משתמשים בו לשליחה (ch <- value) ולקבלה (value := <-ch).

ch := make(chan int)
go func() { ch <- 42 }()
value := <-ch

מחרוזות ו-Runes

מירכאות כפולות משמשות למחרוזות רגילות, backticks למחרוזות raw וגרש יחיד עבור runes.

text := "normal string"
raw := `path\to\file`
r := 'a'

הזחות ועיצוב

gofmt מעצב את הקוד בסגנון אחיד. יש להקפיד על מיקום סוגריים ושבירת שורות. טעות נפוצה היא Enter בין return לערך המוחזר.

סיכום

בתכנות ב-Go, התווים המרכזיים הם סוגריים מסולסלים {}, עגולים (), מרובעים [], האופרטור := וחץ הערוצים <-. תרגל את הקלדת התווים האלה כדי לצבור מיומנות בכתיבה מהירה ומדויקת של קוד Go.

הטקסט הבא
השיעור הבא
מְשִׁימָה חזרה למבחן
go
גרף הסתר