Golangdaki Yöntemler

Kaydolun ve günde 1000 $ kazanın ⋙

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
Sign up and earn $1000 a day ⋙

Leave a Comment

Bilgisayarın aniden kapanmasını düzeltmenin basit yolu

Bilgisayarın aniden kapanmasını düzeltmenin basit yolu

Eğer ki kullanırken bilgisayarınız aniden kapanırsa. Bilgisayarınızda ne sorun olduğunu mu merak ediyorsunuz? Bu makale bu hatanın nasıl düzeltileceği konusunda size yol gösterecektir.

Safaride okuma listesi nasıl silinir

Safaride okuma listesi nasıl silinir

Zamanla, Safari okuma listenizi daha sık kullandıkça, liste büyüyebilir ve karmaşıklaşabilir. Safari'de okuma listenizi temizleme talimatlarını aşağıda bulabilirsiniz.

Tartışma için bir Telegram grup konusu nasıl oluşturulur

Tartışma için bir Telegram grup konusu nasıl oluşturulur

Telegram grup konuları Telegram grubundaki mesajlardan ayrı olacak ve birden fazla tartışma konusu oluşturabileceksiniz. Aşağıdaki makale Telegram grup konusu oluşturmanıza yardımcı olacaktır.

Tesla bobini elektriği boşaltabilir ve şarkı söyleyebilir

Tesla bobini elektriği boşaltabilir ve şarkı söyleyebilir

Tesla bobini, dahi Nikola Tesla'nın meşhur icadı olan rezonanslı bir transformatör devresi oluşturur. Yüksek voltajlı, düşük yoğunluklu, yüksek frekanslı alternatif akım üretmek için kullanılır... Sadece deşarj değil, zeka ve yaratıcılıkla insan Tesla bobinlerini de şarkı söylettirir.

220 tonluk antik bir binayı 700 sabun kalıbıyla taşımak

220 tonluk antik bir binayı 700 sabun kalıbıyla taşımak

Aralık ayının başlarında, inşaat şirketi S. Rushton, Kanada'nın Nova Scotia eyaletine bağlı Halifax kentinde 220 ton ağırlığındaki eski bir binayı, yaklaşık 700 kalıp sabun "yardımıyla" 9 metre mesafeye başarıyla taşıdı.

Süpersonik motor 19.756 km/saat hıza ulaşıyor

Süpersonik motor 19.756 km/saat hıza ulaşıyor

Çinli hipersonik silah araştırmacıları, uçakların 30 km yükseklikte 19,756 km/s (Mach 16) hızla seyahat etmesini sağlayan dünyanın en güçlü döner patlayıcı motorunu geliştirdi.

Kendinize İngilizce mutlu yıllar dilemek için durum

Kendinize İngilizce mutlu yıllar dilemek için durum

Aşağıda kendinize İngilizce mutlu yıllar dilemek için bazı durumlar bulunmaktadır, kendinize iyi ve anlamlı İngilizce mutlu yıllar dilekleri lütfen bunlara bakın.

1 litre kaç ml, kg, m3tür?

1 litre kaç ml, kg, m3tür?

1kg kaç ml'dir? 1ml kaç kg'a eşittir? Gelin bu ağırlık birimlerini nasıl dönüştüreceğimizi öğrenelim!

Yapay zeka hayvan çevirisi, insanların köpek havlamasını anlamasına yardımcı oluyor

Yapay zeka hayvan çevirisi, insanların köpek havlamasını anlamasına yardımcı oluyor

Yapay zeka (YZ) sayesinde, insanların hayvan dilini anlayabilmesi gibi bir film hayali yakında gerçeğe dönüşebilir.

Telefonunuzdaki kamera ayarları ne işe yarar?

Telefonunuzdaki kamera ayarları ne işe yarar?

Her bir özelliğin ne işe yaradığını bilmek, iyi bir fotoğraf ile harika bir fotoğraf arasındaki farkı yaratabilir.

OpenAI, Geliştiricilerin AI Aracıları Oluşturmasına Yardımcı Olacak Yeni Bir Araç Başlattı

OpenAI, Geliştiricilerin AI Aracıları Oluşturmasına Yardımcı Olacak Yeni Bir Araç Başlattı

Yapay zeka sektörünün geleceğinin yapay zeka ajanları olduğunu düşünen OpenAI, mevcut araçlarla güçlü, "endüstriyel düzeyde" ajanlar oluşturmanın çok zor olduğunu kabul ediyor.

Pocket Casts: En İyi Podcast Uygulaması Artık Masaüstünde Ücretsiz

Pocket Casts: En İyi Podcast Uygulaması Artık Masaüstünde Ücretsiz

Podcast hayranları için harika bir haberimiz var. Pocket Casts şu anda web üzerinden ve Mac ile Windows uygulamaları üzerinden ücretsiz olarak kullanılabiliyor.

Ay yüzeyindeki Blue Ghost iniş aracının ilk görüntülerini görün

Ay yüzeyindeki Blue Ghost iniş aracının ilk görüntülerini görün

Bu hafta sonu Ay'a Mavi Hayalet iniş aracının ulaşmasıyla birlikte, dünyanın dört bir yanındaki gökbilimciler, gezegenimizin doğal uydusuna dair gerçekten sürükleyici ve hatta benzeri görülmemiş bir bakış açısı sağlayacak bir dizi çarpıcı yeni görüntüyü merakla bekliyorlar.

Golangda sabitler nasıl kullanılır

Golangda sabitler nasıl kullanılır

Golang'da Constant veya Const nedir? Go'da sabitlerin kullanımı hakkında bilmeniz gerekenler şunlardır.

Hacklenen Facebook şifresi ve kaybolan kayıt e-postası nasıl geri alınır

Hacklenen Facebook şifresi ve kaybolan kayıt e-postası nasıl geri alınır

Facebook kullanırken bazen hesabınız hacklenebilir, şifreniz kaybolabilir, hatta Facebook kayıt e-postanız bile kaybolabilir. Peki hem şifrenizi hem de kayıt e-postanızı kaybettiğinizde Facebook hesabınızı nasıl geri alabilirsiniz?