Yapıların girdi olarak verildiği fonksiyonlar method
olarak tanımlanır. Böylelikle yapıya özel işlemleri nesne yönelimli programlama da olduğu gibi kullanım kolaylığı sağlar.
package main
import (
"fmt"
)
// Yapı
type dikdortgen struct {
genislik int
yukseklik int
}
// Metotlar
func (d *dikdortgen) alan() int {
return d.genislik * d.yukseklik
}
func (d dikdortgen) cevre() int {
return d.genislik + d.yukseklik
}
func main() {
// Yapıyı tanımlama
d := dikdortgen{genislik: 10, yukseklik: 8}
// Metodların kullanımı
fmt.Println("Alan:", d.alan())
fmt.Println("Çevre:", d.cevre())
}
Alan: 80
Çevre: 18
Yapı tanımlama
type dikdortgen struct {
genislik int
yukseklik int
}
Dikdörtgen için öncelikle bir yapı struct
tanımlaması oluşturuyoruz.
Metot ile Alan/Çevre Hesaplama
func (d *dikdortgen) alan() int {
return d.genislik * d.yukseklik
}
func (d dikdortgen) cevre() int {
return d.genislik + d.yukseklik
}
alan() ve cevre() metotları dikdortgen
yapısında alıcıya sahiptir. Bu da yapıya özel fonksiyon tanımlama yöntemidir ve sadece bu yapıya sahip tanımlamalar ile kullanılabilir. Pointer ile tanımlanabilir ve bu yapının kopyası yerine üzerinde çalışmanıza izin verir.
Kullanımı
// Metodların kullanımı
fmt.Println("Alan:", d.alan())
fmt.Println("Çevre:", d.cevre())
Metotlar yapı.fonksiyon()
şeklinde kullanılmaktadır.
Top comments (0)