Go

【Go】初めのインターフェース

Go言語でもインターフェースが利用出来ます。

今回はとりあえず使用してみましょう。

インターフェースの特徴

Goのインターフェースの特徴は簡単に言うと以下の通りです

  • インターフェースは型です。typeキーワードを使用して定義できます。
  • インターフェースで使用するメソッドを定義します。(メソッドリストと言う)
  • インターフェースは暗黙的に実装されます。

インターフェースの定義

インターフェースは型です。typeキーワードを使用して定義します。また、使用するメソッド(メソッドリスト)を定義します。

// インターフェースの定義
type myInterface interface {

	// 必要なメソットを記載する(メソッドリスト)
	getName() string
	getAge() int
}

インターフェースの実装

Goではインターフェースで定義されたメソッドを実装すると、暗黙的にインターフェースを実装した事になります。javaやphpのように明示的(implements)にインタフェースを指定しません。
以下は、インターフェースを実装し、使用してみました。

package main

import (
	"fmt"
)

// インターフェースの定義
type myInterface interface {

	// 必要なメソッドを記載する(メソッドリスト)
	getName() string
	getAge() int
}

// 構造体の定義
type myStruct struct {
	name string
	age  int
}

// メソッド定義
func (m myStruct) getName() string {
	return m.name
}

func (m myStruct) getAge() int {
	return m.age
}

func main() {

	// 定義した構造体の変数宣言
	var parson myStruct

	// フィールドへのアクセス。値を設定。
	parson.name = "名前"
	parson.age = 20

	fmt.Println(parson.getName()) // "名前" が表示される。
	fmt.Println(parson.getAge())  // 20 が表示される。
}

コメントを残す

メールアドレスが公開されることはありません。

© DeNnie.Lab All Rights Reserved.