סיכום – טיפול בבעיות
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 109 מתוך 109.
אתגר
קלנתרגל טיפול בשגיאות ב-Go באמצעות תוכנית פשוטה להמרת טמפרטורה.
המשימה שלך היא לממש פונקציה שממירה טמפרטורות מצלזיוס לפרנהייט, תוך טיפול מתאים בשגיאות.
השלם את הפונקציה celsiusToFahrenheit ש:
- ממירה טמפרטורה מצלזיוס לפרנהייט באמצעות הנוסחה: F = C × 9/5 + 32
- מחזירה שגיאה אם הטמפרטורה נמוכה מאפס מוחלט (-273.15°C)
עבור הודעת השגיאה, עליך להחזיר בדיוק: "Error: temperature below absolute zero"
הפונקציה הראשית מכילה מקרי בדיקה לאימות המימוש שלך.
נסו בעצמכם
package main
import (
"errors"
"fmt"
)
// celsiusToFahrenheit ממירה מעלות צלזיוס למעלות פרנהייט
// מחזירה שגיאה אם הטמפרטורה נמוכה מהאפס המוחלט (-273.15°C)
func celsiusToFahrenheit(celsius float64) (float64, error) {
// TODO: לממש את לוגיקת ההמרה
// 1. לבדוק אם הטמפרטורה נמוכה מהאפס המוחלט (-273.15°C)
// 2. אם הטמפרטורה תקינה, להמיר לפי הנוסחה: F = C × 9/5 + 32
// 3. להחזיר ערך ושגיאה מתאימים
return 0, nil
}
func main() {
// לבדוק טמפרטורה תקינה
fmt.Println("Converting 25°C to Fahrenheit:")
fahrenheit, err := celsiusToFahrenheit(25)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("25°C = %.2f°F\n", fahrenheit)
}
// לבדוק טמפרטורה תקינה נוספת
fmt.Println("\nConverting 0°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(0)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("0°C = %.2f°F\n", fahrenheit)
}
// לבדוק טמפרטורה לא תקינה (מתחת לאפס המוחלט)
fmt.Println("\nConverting -300°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(-300)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("-300°C = %.2f°F\n", fahrenheit)
}
}כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר11טיפוסים מורכבים: Slices
מבוא ל-Slicesהצהרת Literals של Sliceיצירת Slices באמצעות `make`אורך Slice לעומת קיבולתגישה לאיברים ב-Sliceהוספת איבריםחיתוך Slices/מערכים קיימיםמעבר על Slicesהעתקת Slicesסיכום – רשימות דינמיות14טיפול בסיסי בשגיאות
מושג השגיאותהממשק `error`פונקציות שמחזירות שגיאותבדיקת שגיאותיצירת שגיאות פשוטותיצירת שגיאות עם עיצובטיפול בסיסי בשגיאותסיכום – טיפול בבעיות3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטותתרגלו בעצמכם: קומפיילר Go אונליין