Example of Go language interface usage

  • 2020-05-26 09:17:44
  • OfStack

This article illustrates the use of interfaces in the Go language. Share with you for your reference. The specific analysis is as follows:

An interface type is a collection defined by a set of methods.
The value of the interface type can hold any value that implements these methods.

package main
import (
    "fmt"
    "math"
)
type Abser interface {
    Abs() float64
}
func main() {
    var a Abser
    f := MyFloat(-math.Sqrt2)
    v := Vertex{3, 4}
    a = f  // a MyFloat implements Abser
    a = &v // a *Vertex implements Abser
    a = v  // a Vertex, does NOT
           // implement Abser
    fmt.Println(a.Abs())
}
type MyFloat float64
func (f MyFloat) Abs() float64 {
    if f < 0 {
        return float64(-f)
    }
    return float64(f)
}
type Vertex struct {
    X, Y float64
}
func (v *Vertex) Abs() float64 {
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

I hope this article has been helpful to your programming of Go language.


Related articles: