freeCodeCamp/guide/arabic/go/methods/index.md

68 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Go Methods
localeTitle: الذهاب أساليب
---
## الذهاب أساليب
أنواع Golang يمكن أن يكون لها طرق. الطريقة هي دالة ذات وسيطة خاصة ، _المتلقي_ .
`type Rectangle struct {
height, width int64
}
func (r Receiver) getArea() int64 {
return r.height * r.height
}
r := Rectangle{10, 20}
r.getArea() // 200
`
هنا ، اكتب `Rectangle` قد حصلت على طريقة تسمى `getArea` تقوم بإرجاع مساحة المستطيل. المتلقي هنا هو `r` .
هذا الرمز مكافئ لما يلي:
`type Rectangle struct {
height, width int64
}
func getArea(r Receiver) int 64{
return r.height * r.height
}
r := Rectangle{10, 20}
getArea(r) // 200
`
الآن يتلقى أسلوب getArea `r` كوسيطة ، بدلاً من جهاز استقبال. الوظيفة مكافئ.
### مؤشر المتلقي
يمكنك تمرير مؤشر كمستقبل:
`type MyInt int64
func (m *MyInt) setToZero() {
*m = MyInt(0)
}
m := MyInt(10)
m.setToZero() // m == 0
`
### طرق التمديد
إذا كنت ترغب في إنشاء طريقة على نوع محدد في حزمة أخرى ، مثل `int` يمكنك استخدام غلاف بسيط مثل:
`type MyInt int64
func (m MyInt) add10() int64 {
return m + 10
}
m := MyInt(10)
m.add10() // 20
`
#### معلومات اكثر:
https://tour.golang.org/methods/1