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)