Latest web development tutorials

الذهاب اجهة اللغة

توفر لغة العودة نوع آخر البيانات التي واجهة، والتي جنبا إلى جنب مع تعريف كل الأساليب لديهم من القواسم المشتركة، وأي نوع آخر تنفذ هذه الأساليب هو تنفيذ هذه الواجهة.

أمثلة

/* 定义接口 */
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}

/* 定义结构体 */
type struct_name struct {
   /* variables */
}

/* 实现接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
   /* 方法实现 */
}
...
func (struct_name_variable struct_name) method_namen() [return_type] {
   /* 方法实现*/
}

أمثلة

package main

import (
    "fmt"
)

type Phone interface {
    call()
}

type NokiaPhone struct {
}

func (nokiaPhone NokiaPhone) call() {
    fmt.Println("I am Nokia, I can call you!")
}

type IPhone struct {
}

func (iPhone IPhone) call() {
    fmt.Println("I am iPhone, I can call you!")
}

func main() {
    var phone Phone

    phone = new(NokiaPhone)
    phone.call()

    phone = new(IPhone)
    phone.call()

}

في المثال أعلاه، يمكننا تعريف واجهة الهاتف، واجهة التي لديها استدعاء الأسلوب (). ثم نحدد متغير في نوع وظيفة الرئيسي الهاتف في الداخل، ولمن تم تعيينها إلى NokiaPhone واي فون. ثم استدعاء المكالمة () الأسلوب، نتائج الإخراج هي كما يلي:

I am Nokia, I can call you!
I am iPhone, I can call you!