שיעור הקלדה: תכנות בשפה 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'

הזחות ועיצוב

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

סיכום

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