Latest web development tutorials

Ir Idioma de la Interfaz

Ir lenguaje proporciona otro tipo de datos que es la interfaz, que junto con la definición de todos los métodos tienen en común, y cualquier otro tipo implementa estos métodos es implementar esta interfaz.

Ejemplos

/* 定义接口 */
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] {
   /* 方法实现*/
}

Ejemplos

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()

}

En el ejemplo anterior, se define una interfaz de teléfono, la interfaz que tiene una llamada al método (). A continuación, definimos una variable en el principal tipo de función de teléfono en el interior, y al que nos asignaron NokiaPhone y iPhone. A continuación, llamar al método call (), los resultados de salida son los siguientes:

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