Use case of Interface in GoLang

  • date 1st May, 2021 |
  • by Prwatech |
  • 0 Comments

Interface is a protocol – a contract. It only describes the expected behavior, It is an abstract type.

Use Case 1:

Program to print value through interface.

package main

import “fmt”

funcmyfunc(a interface{}) {

            v := a.(string)

            fmt.Println(“value :”, v)

}

funcmain() {

            var v interface {

            } = “Prwatech”

            myfunc(v)

}

Output :

Use Case 2:

Program for geometric shapes.

package main

import (

    “fmt”

    “math”

)

type geometry interface {

area() float64

perim() float64

}

type rect struct {

    width, height float64

}

type circle struct {

    radius float64

}

func (r rect) area() float64 {

    return r.width * r.height

}

func (r rect) perim() float64 {

    return 2*r.width + 2*r.height

}

func (c circle) area() float64 {

    return math.Pi * c.radius * c.radius

}

func (c circle) perim() float64 {

    return 2 * math.Pi * c.radius

}

funcmeasure(g geometry) {

fmt.Println(g)

fmt.Println(g.area())

fmt.Println(g.perim())

}

funcmain() {

r := rect{width: 3, height: 4}

c := circle{radius: 5}

    measure(r)

    measure(c)

}

Output:

Use Case 3:

package main

import (

    “fmt”

)

funcmyFunc(a interface{}) {

fmt.Println(a)

}

funcmain() {

    var my_age int

my_age = 25

myFunc(my_age)

}

Output :

Quick Support

image image