
Golang'da Arayüzler (Interfaces)
Arayüz Nedir?
Arayüz Oluşturma
type Motor interface {
Calistir(surucuAdı string)
Durdur(surucuAdı string)
}package main
import "fmt"
type Motor interface {
Calistir(surucuAdı string)
Durdur(surucuAdı string)
}
// Araba ve Otobus tipleri Motor arayüzünü uygulamaktadır.
type Araba struct {
Plaka string
}
func (a Araba) Calistir(surucuAdı string) {
fmt.Println(a.Plaka, "plakalı araba", surucuAdı, "tarafından çalıştırıldı")
}
func (a Araba) Durdur(surucuAdı string) {
fmt.Println(a.Plaka, "plakalı araba", surucuAdı, "tarafından durduruldu")
}
type Otobus struct {
Plaka string
}
func (o Otobus) Calistir(surucuAdı string) {
fmt.Println(o.Plaka, "plakalı otobüs", surucuAdı, "tarafından çalıştırıldı")
}
func (o Otobus) Durdur(surucuAdı string) {
fmt.Println(o.Plaka, "plakalı otobüs", surucuAdı, "tarafından durduruldu")
}
func main() {
araba := Araba{Plaka: "34ABC123"} // Araba tipinde bir nesne oluşturduk
otobus := Otobus{Plaka: "34DEF456"} // Otobus tipinde bir nesne oluşturduk
var motor Motor // Motor arayüzü tipinde bir değişken tanımladık
motor = araba // motor değişkenine araba nesnesini atadık
motor.Calistir("Ahmet") // motor değişkeni üzerinden Calistir metodunu çağırdık
motor.Durdur("Ahmet") // motor değişkeni üzerinden Durdur metodunu çağırdık
motor = otobus // motor değişkenine otobus nesnesini atadık
motor.Calistir("Mehmet") // motor değişkeni üzerinden Calistir metodunu çağırdık
motor.Durdur("Mehmet") // motor değişkeni üzerinden Durdur metodunu çağırdık
}Arayüzlerle Neler Yapılabilir?
Arayüzlerle İlgili Önemli Noktalar:
Arayüz ile Türlerin Güvenli Dönüşümleri
Tip Doğrulaması (Type Assertion)
Tip Değişkeni ile Güvenli Dönüşüm
Sonuç
Last updated
