투케이2K

35. (Go Lang) [Mac Os] Go 문법 : interface 인터페이스 정의 및 메소드 재정의 결과 출력 본문

Go Lang (Go 언어)

35. (Go Lang) [Mac Os] Go 문법 : interface 인터페이스 정의 및 메소드 재정의 결과 출력

투케이2K 2024. 2. 19. 19:34

[개발 환경 설정]

개발 언어 : Go

 

[소스 코드]

 

package main

import "fmt"

func main() {

	// ---------------------------------------------------
	// [기본 설명]
	// ---------------------------------------------------
	// Go에서 interface는 메서드들의 집합체입니다
	// ---------------------------------------------------
	// interface는 타입(type)이 구현해야 하는 메서드 원형(prototype)들을 정의합니다
	// ---------------------------------------------------
	// 인터페이스는 struct와 마찬가지로 type 문을 사용하여 정의합니다
	// ---------------------------------------------------

	// [파라미터 선언]
	p := Parameter{10, 5}

	// [메소드 호출]
	resultCalculator(p)
}

// [interface 정의]
type Calculator interface {
	plus() int
	minus() int
}

// [Parameter 정의]
type Parameter struct {
	num_1, num_2 int
}

// [Calculator 인터페이스 구현]
func (r Parameter) plus() int {
	return r.num_1 + r.num_2
}

func (r Parameter) minus() int {
	return r.num_1 - r.num_2
}

// [계산 결과 확인 함수 정의]
func resultCalculator(calc Calculator) {
	fmt.Println("")
	fmt.Println("----------------------------------------------")
	fmt.Println("[로그 출력 수행]")
	fmt.Println("----------------------------------------------")
	fmt.Println("plus : ", calc.plus())
	fmt.Println("----------------------------------------------")
	fmt.Println("minus : ", calc.minus())
	fmt.Println("----------------------------------------------")
	fmt.Println("")
}
 

[결과 출력]


 

반응형
Comments