Alireza Shamsi
Alireza Shamsi
خواندن ۱ دقیقه·۶ سال پیش

19.آموزش GO با مثال(متدها)

گو از متدهای تعریف شده روی انواع سازه ها پشتیبانی میکند.

package main import "fmt" type rect struct { width, height int }

متد area یک دریافت کننده از نوع *rectدارد.

func (r *rect) area() int { return r.width * r.height }

روش ها برای هر نوع اشاره گر یا مقدار گیرنده می توانند تعریف شوند. اینجا یه مثال از مقدار گیرنده داریم.

func (r rect) perim() int { return 2*r.width + 2*r.height } func main() { r := rect{width: 10, height: 5}

اینجا ما 2 متد تعریف شده روی سازه خودمون رو فراخوانی میکنیم.

fmt.Println("area: ", r.area()) fmt.Println("perim:", r.perim())

گو به صورت خودکار تبدیل بین مقادیر و اشاره گرها را برای فراخوانی متدها انجام می دهد. شما ممکنه از یک نوع اشاره گر گیرنده برای جلوگیری از کپی کردن روی فراخوانی متدها استفاده کنید یا به متدها برای تغییر دادن سازه های دریافتی اجازه دهید.

rp := &r fmt.Println("area: ", rp.area()) fmt.Println("perim:", rp.perim()) }

اجرای این برنامه

$ go run methods.go area: 50 perim: 30 area: 50 perim: 30

در قسمت بعدی ما به مکانیزم گو برای گروه بندی و نامگذاری مجموعه های متفاوتی از متدها نگاهی میندازیم: اینترفیس ها.

<<سازه ها----------------------------------اینترفیس ها>>

برنامه نویسیgolang
در جست و جوی خود
مستندات زبان گولنگ به پارسی(GO)
شاید از این پست‌ها خوشتان بیاید