פרמטרים של פונקציה
שיעור 5 מתוך 19 בקורס פונקציות ומצביעים ב-Golang של Coddy.
בשיעור הקודם כתבנו את הפונקציה הראשונה שלנו, שהיא פונקציה פשוטה שלא מקבלת פרמטרים; היא רק מדפיסה הודעה למסך.
עכשיו, נניח למשל שאנחנו רוצים ליצור פונקציה שמחשבת את הסכום של שני ערכים. איך נוכל לעשות זאת? ובכן, נוכל לעשות זאת כך:
func sum() {
fmt.Println("result = ", value1 + value2)
}את זה קל להבין, נכון? אנחנו פשוט מחברים כאן שני ערכים ומדפיסים את התוצאה. אבל יש כאן בעיה: value1 ו-value2 אינם מוגדרים. איך הפונקציה תדע אילו ערכים לחבר? כאן נכנסים לתמונה ארגומנטים או פרמטרים. בתוך הסוגריים אנחנו מציבים פרמטרים שהפונקציה תקבל, כך:
func sum(v1, v2 int) {
fmt.Println("result =", v1+v2)
}בעזרת התחביר הזה sum(v1, v2 int), אנחנו מתכוונים שהפונקציה תקבל שני ערכים מסוג int, ונוכל לעשות איתם כל מה שנצטרך בגוף הפונקציה. במקרה שלנו, אנחנו פשוט מדפיסים את הסכום של שני הערכים fmt.Println("result = ", v1 + v1).
עכשיו, כשנקרא לפונקציה הזאת, נעביר לה שני ערכים לפי בחירתנו, והפונקציה תחשב עבורנו את הסכום:
func main() {
sum(12, 44)
}הפלט יהיה:
result = 56ונוכל לקרוא לה כרצוננו. למשל:
func main() {
sum(12, 44)
sum(100, 399)
}הפלט יהיה:
result = 56
result = 400כאן הצגנו רק דוגמה עם טיפוס מספר שלם, אבל הפרמטרים יכולים להיות מכל טיפוס, בהתאם למצב. אפשר גם להעביר לפונקציה אחת טיפוסים שונים, למשל:
functionName(v1 int, v2 string)אתגר
קלכתבו פונקציה בשם coddy שמקבלת שני ארגומנטים: s מסוג string ו-n מסוג int, ומדפיסה למסך את המחרוזת s n פעמים.
דוגמה:
קלט: s = "Golang" ו-n = 2
פלט:
Golang
Golangנסו בעצמכם
import "fmt"
// הקוד שלך כאן
כל השיעורים ביחידה פונקציות ומצביעים ב-Golang
1מבוא
מבוא4בנייה מחדש של פונקציות מחרוזות ב-Go
מחרוזות ב-Golangפונקציית Joinפונקציית Containsפונקציית Indexאתגר סיכום #13פונקציות
מבואפרמטרים של פונקציהפונקציה עם ערך מוחזרערך לעומת הפניההחזרת ערכים מרוביםפונקציות אנונימיותאתגר סיכום מס׳ 1אתגר סיכום מס׳ 2תרגלו בעצמכם: קומפיילר Go אונליין