مهندس نرم افزار و برنامه نویس
تعریف تابع و حلقه تکرار و متغیر در گولنگ go
گو
یک تابع ، گروهی از عبارات است که با هم یک کار را انجام می دهند.هر برنامه Go حداقل دارای یک تابع است که اصلی main است .
می توانید کد خود را به توابع جداگانه تقسیم کنید.
نحوه تقسیم کد خود در بین عملکردهای مختلف به شما بستگی دارد ، اما از نظر منطقی ،تقسیم باید به گونه ای باشد که هر عملکرد یک کار خاص را انجام می دهد.
تعریف عملکرد در زبان برنامه نویسی Go شامل یک هدر عملکرد و یک بدنه تابع است .
در اینجا تمام قسمت های یک تابع آمده :
Func – اعلان یک تابع را شروع می کند.
نام تابع – این نام واقعی تابع است. نام تابع و لیست پارامترها در کنار هم امضای تابع را تشکیل می دهند
پارامترها – یک پارامتر مانند حفره محل است. وقتی یک تابع فراخوانی می شود ، یک مقدار را به پارامتر منتقل می کنید.
این مقدار به پارامتر یا آرگومان واقعی بيان کرد ه می شود. لیست پارامترها به نوع ، ترتیب و تعداد پارامترهای یک تابع اشاره دارد
پارامترها اختیاری هستند. یعنی یک تابع ممکن است بدون پارامتر باشد
Return Type – یک تابع ممکن است لیستی از مقادیر را برگرداند. Return_types لیستی از انواع داده های مقادیر بازده تابع است.
برخی از توابع عملیات مورد نظر را بدون بازگشت یک مقدار انجام می دهند. در این حالت ، Return_type مورد نیاز نیست.
بدنه ی تابع – شامل مجموعه ای از عبارات است که تابع را تعریف می کند.
مثال
کد منبع زیر تابعی به نام max() را نشان می دهد .
این تابع دو پارامتر num1 و num2 را به خود می گیرد و حداکثر عدد را بین دو بازه می گرداند :
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
فراخوانی یک تابع
در حین ایجاد یک تابع Go ، تعریفی از تابعی که باید کاری انجام دهد ارائه می دهید.
برای استفاده از یک تابع ،
برای انجام کار تعریف شده باید آن تابع را فراخوانی کنید.
هنگامی که یک برنامه یک تابع فراخوانی می کند ، کنترل برنامه به تابع مد نظر منتقل می شود.
تابع مد نظر یک کار تعریف شده را انجام می دهد و هنگامی که دستور بازگشت آن اجرا شد یا هنگامی که به پایان تابع رسید ،کنترل برنامه را به برنامه اصلی برمی گرداند.
برای فراخوانی یک تابع ، کافی است پارامترهای مورد نیاز را به همراه نام تابع آن ارسال کنید.
اگر تابع یک مقدار را برگرداند ، می توانید مقدار برگشتی را ذخیره کنید.
به عنوان مثال:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
var ret int
/* calling a function to get max value */
ret = max(a, b)
fmt.Printf( "Max value is : %d\n", ret )
}
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
var result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
بازگرداندن مقادیر متعدد از تابع
یک تابع Go می تواند مقادیر مختلفی را برگرداند.
به عنوان مثال :
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
تعریف حلقه تکرار در گو هم مانند دیگر زبان هاست اما با تفاوت سینتکسی ریز به مثال های زیر توجه کنید:
package main
import "fmt"
func main() {
var b int = 15
var a int
numbers := [6]int{1, 2, 3, 5}
/* for loop execution */
for a := 0; a < 10; a++ {
fmt.Printf("value of a: %d\n", a)
}
for a < b {
a++
fmt.Printf("value of a: %d\n", a)
}
for i,x:= range numbers {
fmt.Printf("value of x = %d at %d\n", x,i)
}
}
اول دو متغیر تعریف کردیم بنام های a ,b بعد به حلقه ی تکرار وصل کردیم
همانطور که مشاهده میکنید تعریف لوپ در go همانند سی پلاس پلاس است ولی بدون پرانتز.
در حلقه ی تکرار آخر نیز ما از تابع رنج استفاده کردیم که این تابع یک پیمایش داخلی در خودش داره برای اعداد از یک عدد تا آخر بازه
همچنین هر یک از عدد های ایندکس رو در متغیر i , x میریزد
ما اینجا از تعریف سریع متغیر در فور استفاده کردیم با عملگر =:
این عملگر متغیر را تعریف میکند بدون درج کلمه ی var
مطلبی دیگر از این انتشارات
جنریک ها در گو و بررسی پرفورمنس آنها با گرفتن بنچ مارک
مطلبی دیگر از این انتشارات
آرایه و Slice در گولنگ
مطلبی دیگر از این انتشارات
آموزش تعریف و مقدار دهی آرایه ها در زبان go