go의 interface는 OO개념이 아니다. struct에서 적당히 호출할 수 있는 형태로 만들어줄 수 있다. 


package main

import "fmt"

type Rectangle struct {
X1 int
Y1 int
X2 int
Y2 int
}

type Get interface {
getX1() int
}

func main() {
r := Rectangle{1,1,2,2,}
showGet(r)
}

func (r Rectangle) getX1() int{
return r.X1
}

func showGet(get Get) {
x := get.getX1()
fmt.Println(x)
}


결과값은 1이다.






이 뿐 아니라 아무거나 넣을 수 있는 void * 이기도 하다.


package main

import "fmt"

func main() {
var a interface{}
printInterface(a)

a = 1
printInterface(a)

a = "a"
printInterface(a)

r := Rectangle{1,2,3,4}
printInterface(r)
}

func printInterface(i interface{}) {
fmt.Println(i)
}

type Rectangle struct {
X1 int
Y1 int
X2 int
Y2 int
}



결과는 다음과 같다.


<nil>

1

a

{1 2 3 4}


'golang' 카테고리의 다른 글

[golang] 매개 변수 받기  (0) 2017.09.08
[golang] 에러(error) 예제  (0) 2017.09.07
[golang] defer 예제  (0) 2017.09.07
[golang] 함수.클로져 예제  (0) 2017.09.06
[golang] 구조체 초기화/메소드 예제  (0) 2017.08.30
Posted by '김용환'
,