Golangdaki Yöntemler

Golang'daki metotlar fonksiyonlara benzer ancak aralarında önemli bir fark vardır: alıcının özelliklerine erişim sağlayan bir alıcı argümanları  vardır . Alıcı struct veya non-struct tipinde olabilir, ancak her ikisi de aynı pakette olmalıdır. int veya string gibi yerleşik tipler de dahil olmak üzere, diğer paketlerde tanımlanan tipler için metot oluşturmak mümkün değildir ; Aksi takdirde derleyici hata verecektir.

Golang'daki Yöntemler

Örneğin:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

Sonuç:

Name: a
Age: 25

Sözdizimi

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

Alıcı: Bu yöntem kullanılarak erişilebilir.

Yapı türünde Alıcıya sahip yöntem

Go'da alıcının struct tipinde olduğu bir metot tanımlayabilirsiniz. Alıcıya metodun içinden ulaşılabilir. Önceki örnek bu yaklaşımı struct tipinde bir Receiver ile göstermektedir.

Alıcıya sahip yöntem yapı türünde değil

Go ayrıca alıcı türü ve metot tanımı aynı pakette olduğu sürece metotların yapı dışı alıcılara sahip olmasına da izin verir. Başka bir paketteki alıcı türüyle (örneğin int, string) bir metot tanımlayamazsınız.

Örneğin:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

Sonuç:

Square of 4 is 16

Alıcı işaretçili yöntem

Go'da metotlar işaretçi alıcılarına sahip olabilir. Bu, yöntemde yapılan değişikliklerin çağırana yansıtılmasını sağlar; bu, değer alıcılarında mümkün değildir.

Sözdizimi:

func (p *Type) method_name(...Type) Type {    // Code}

Örneğin:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

Sonuç:

Before: a
After: b

Yöntem hem işaretçiyi hem de değeri kabul eder

Fonksiyonların aksine, Go metotları hem değer hem de işaretçi alıcılarını kabul edebilir. İşaretçiler veya değerler geçirebilirsiniz ve metot buna göre işlem yapacaktır.

Örneğin:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

Sonuç:

After pointer method: b
Name: b

Yöntem ve fonksiyon arasındaki fark

Yöntem Çene
Bir alıcı içerir Alıcı içermiyor
Aynı isimde fakat farklı tipte metotlar tanımlamak mümkündür. Aynı isimli ancak farklı tipteki fonksiyonlara izin verilmez.
En üstünlük derecesi olarak kullanılamaz Üst nesneler olarak kullanılabilir

Yorum bırak

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: leke kalıcı hale gelmeden önce nazikçe hareket edin

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: leke kalıcı hale gelmeden önce nazikçe hareket edin

Kıyafetlerdeki yapıştırıcı kalıntılarını çıkarma: dikkatli sökmeden soğuk, sabunlu su ve leke çıkarıcıya, oradan yıkamaya kadar. Japon yapıştırıcısı, etiket kalıntıları ve hassas kumaşlar için ipuçlarıyla.

Bulaşık makinesi filtresi nasıl temizlenir: kalıntı ve kötü kokuları önlemek için basit rehber

Bulaşık makinesi filtresi nasıl temizlenir: kalıntı ve kötü kokuları önlemek için basit rehber

Bulaşık makinesi filtresini adım adım temizlemeyi öğrenin: çıkarma, durulama, fırçalama, yeniden takma, sıklık ve basit bir temizliğin artık yeterli olmadığının işaretleri.

Nemlendirici temizliğinde sitrik asit kullanılabilir mi? Yöntemlere göre dikkat edilmesi gerekenler ve güvenli adımlar örneklerle açıklanıyor

Nemlendirici temizliğinde sitrik asit kullanılabilir mi? Yöntemlere göre dikkat edilmesi gerekenler ve güvenli adımlar örneklerle açıklanıyor

Nemlendiricileri sitrik asit ile temizlerken konsantrasyon, bekletme, durulama ve yöntemlere göre dikkat edilmesi gerekenler üretici resmi bilgilerine dayanarak açıklanıyor. Örnek senaryolarla pratik adımlar anlaşılır şekilde sunuluyor.

Klima Filtresi Temizlenmezse Ne Olur? Elektrik Faturası, Verimlilik, Küf Riski ve Temizlik Sıklığı Seçimi

Klima Filtresi Temizlenmezse Ne Olur? Elektrik Faturası, Verimlilik, Küf Riski ve Temizlik Sıklığı Seçimi

Klima filtresi temizlenmediğinde elektrik faturalarında artış, ısıtma/soğutma verimliliğinde düşüş, koku ve küf oluşumu gibi sorunlar yaşanabilir. Üretici ve enerji tasarrufu bilgilerine dayanarak temizlik sıklığı, otomatik temizleme fonksiyonu ve profesyonel temizlik arasındaki dengeyi açıklıyoruz.

Sırt çantasını çamaşır makinesinde yıkamak: Ne zaman yapılabilir, ne zaman kaçınılmalı?

Sırt çantasını çamaşır makinesinde yıkamak: Ne zaman yapılabilir, ne zaman kaçınılmalı?

Sırt çantasının çamaşır makinesinde ne zaman yıkanabileceğini, bakım etiketinin nasıl okunacağını, program ve deterjan seçimini, askı ve fermuarların korunmasını ve el ile yıkamanın ne zaman tercih edilmesi gerektiğini keşfedin.

Microsoft Teams Lisans Hatası Giderme

Microsoft Teams Lisans Hatası Giderme

Microsoft Teams'te "Lisans Hatası" ile mi karşılaşıyorsunuz? Lisans sorunlarını hızlıca çözmek, erişimi geri yüklemek ve BT ekibiyle uğraşmadan verimliliği artırmak için bu adım adım sorun giderme kılavuzunu izleyin. En son düzeltmelerle güncellendi.

Microsoft Teams Ücretsiz Abonelik Hatası Nasıl Düzeltilir?

Microsoft Teams Ücretsiz Abonelik Hatası Nasıl Düzeltilir?

Microsoft Teams Ücretsiz Abonelik Hatası yüzünden toplantılarınızın aksamasından bıktınız mı? Sorunu hızlıca çözmek ve sorunsuz ekip çalışmasını yeniden sağlamak için kanıtlanmış, adım adım çözümleri keşfedin. En yeni sürümlerde çalışır!

Herkese Açık Wi-Fi Ağlarında Microsoft Teams Ağ Hatasını Çözme

Herkese Açık Wi-Fi Ağlarında Microsoft Teams Ağ Hatasını Çözme

Herkese açık Wi-Fi ağlarında Microsoft Teams ağ hatasıyla mı karşılaşıyorsunuz? Aramalarınızı ve toplantılarınızı sorunsuz bir şekilde geri yüklemek için VPN ayarları, port kontrolleri ve önbellek temizleme gibi anında çözümler bulun. Hızlı çözüm için adım adım kılavuz.

Microsoft Teams Wiki Sekmesinin Yüklenmeme Hatası Nasıl Düzeltilir?

Microsoft Teams Wiki Sekmesinin Yüklenmeme Hatası Nasıl Düzeltilir?

Microsoft Teams Wiki sekmesinin yüklenmemesi hatasıyla mı karşılaşıyorsunuz? Sorunu hızlıca çözmek, Wiki sekmelerinizi geri yüklemek ve ekip verimliliğini sorunsuz bir şekilde artırmak için kanıtlanmış adım adım çözümleri keşfedin.

Microsoft Teams Mac Hata Anahtar Zinciri Sorunlarını Giderme

Microsoft Teams Mac Hata Anahtar Zinciri Sorunlarını Giderme

Microsoft Teams Mac'te Anahtar Zinciri hatasıyla mı mücadele ediyorsunuz? Sorunsuz iş birliğine geri dönmek için macOS için kanıtlanmış, adım adım sorun giderme çözümlerini keşfedin. Hızlı çözümler içeride!