بسم الله الرحمن الرحيم
الدوال (Functions) :
الدالة (Function) هي مجموعة من الأوامر البرمجية تنفذ بشكل متتالي , و حتى الأن أحتوت برامجنا على الدالة (main) .
من فوائد الدوال تسهيل قراءة البرامج و توفير الوقت اللازم لكتابة النصوص البرمجية المتكررة , و سنبدأ الدرس الرابع بهذا المثالة عن الدالة "hello" :
package main
import "fmt"
func hello(){
}
func main() {
hello()
}
و هذا الشكل العام لتصريح عن وظيفة برمجية كالتالي :
1 . func : الكلمة المفتاحية func يجب أن تكون في بداية التعريف عن وظيفة برمجية جديدة .
2 . funcname : أسم الوظيفة البرمجية .
3. (q int) : القيمة التي سيتم تنفيذ سلسة الأوامر و نوعها , تستطيع أن تعرف أكثر من متغير من أكثر من نوع مختلف , كما يمكنك كتابة دالة بدون أي قيمة .
4. (r,s int) : القيم التي يتم أرجاعها من الدالة بأستخدام الجملة return , و تستطيع تجاهل تسمية المتغيرات و تعريف الأنواع فقط .
5 . الكلمة البرمجية return و القيم التي يتم تخزينها في المتغيرات المعرفة في بداية الدالة ( في الخطوة 4 ) .
5 . الكلمة البرمجية return و القيم التي يتم تخزينها في المتغيرات المعرفة في بداية الدالة ( في الخطوة 4 ) .
في النص البرمجي السابق قمنا بالتصريح عن الدالة "hello" :
func hello(){
fmt.Println("Hello,World")
}
و لأستدعاء الدالة فقط قمنا بكتابة أسم الدالة متبوعاً بالقوسين , سوف نقوم بتعديل هذا الدالة لكي تمرير قيمة مختلفة للنص المطبوع في كل مرة يتم أستدعاء الدالة :
func hello(str1 string){
fmt.Println(str1)
}
تراه أننا قمنا بتصريح المتغير str1 من نوع string في القوسين التابعين لسطر الخاص بتعريف أسم الدالة :
func hello(str1 string){
حيث سيمكننا ذلك من تمرير البيانات إلى الدالة , كما في المثال :
package main
import "fmt"
func hello(str1 string){
}
func main() {
hello("Hello")
}
و الأن إلى مثال أخر عن دالة تعيد مجموع عددين بأستخدام الكلمة المفتاحية "return" :
package main
import "fmt"
func add(a int , b int ) int {
return a+b
}
func main(){
var c,d int = 12 23
fmt.Println(add(c,d))
}
import "fmt"
func add(a int , b int ) int {
return a+b
}
func main(){
var c,d int = 12 23
fmt.Println(add(c,d))
}
func add(a int , b int ) int
لدلالة على النوع الذي سوف تعيده الدالة , و في السطر المحتوي على الكلمة المفتاحية ألحقناه بالكلمة "return" ثم بالتعبير الرياضي "a+b" الذي سيعيد مجموع القيمتين :
return a+b
كما تتميز لغة GO بأمكانية أعادة أكثر من قيمة من الدالة كالمثال التالي الذي يقوم بتبديل أماكن القيم النصية "Swap" :
func swap(a,b string)(string,string){
return b,a
}
و هذا مثال على أستخدام هذه الدالة :
package main
import "fmt"
func swap(a,b string)(string,string){
return b,a
}
func main(){
a,b := "Hello" , "World"
d,c := swap(a,b)
fmt.Println(d,c)
}
و في المثال الأخير سوف نأخذ دالة من موقع GO Tour , تلاحظ أننا عند كتابة الكلمة البرمجية return لم نحدد القيم المسترجعة من الدالة , و ذلك لأننا قمنا بأستخدام القيم المعرفة في بداية الدالة x , y لحفظ نتيجة العملية الحسابية فلا داعي لكتابة القيم مرة أخرى :
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4/9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4/9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
و هذا نهاية الدرس الرابع , و أذا كان لديك أي أضافة أو تصحيح فلا تتردد شاركنا .
ليست هناك تعليقات:
إرسال تعليق