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

Normal TV ile Akıllı TV arasındaki fark

Normal TV ile Akıllı TV arasındaki fark

Akıllı televizyonlar gerçekten dünyayı kasıp kavurdu. Teknolojinin sunduğu pek çok harika özellik ve internet bağlantısı, televizyon izleme şeklimizi değiştirdi.

Dondurucuda ışık yokken buzdolabında neden ışık var?

Dondurucuda ışık yokken buzdolabında neden ışık var?

Buzdolapları evlerde sıkça kullanılan cihazlardır. Buzdolapları genellikle 2 bölmeden oluşur, soğutucu bölme geniştir ve kullanıcı her açtığında otomatik olarak yanan bir ışığa sahiptir, dondurucu bölme ise dardır ve hiç ışığı yoktur.

Wi-Fiyi Yavaşlatan Ağ Tıkanıklığını Gidermenin 2 Yolu

Wi-Fiyi Yavaşlatan Ağ Tıkanıklığını Gidermenin 2 Yolu

Wi-Fi ağları, yönlendiriciler, bant genişliği ve parazitlerin yanı sıra birçok faktörden etkilenir; ancak ağınızı güçlendirmenin bazı akıllı yolları vardır.

Tenorshare Reiboot Kullanarak Veri Kaybı Olmadan iOS 17den iOS 16ya Nasıl Geri Dönülür

Tenorshare Reiboot Kullanarak Veri Kaybı Olmadan iOS 17den iOS 16ya Nasıl Geri Dönülür

Telefonunuzda kararlı iOS 16'ya geri dönmek istiyorsanız, iOS 17'yi kaldırma ve iOS 17'den 16'ya geri dönme konusunda temel kılavuzu burada bulabilirsiniz.

Her gün yoğurt yediğinizde vücudunuzda neler olur?

Her gün yoğurt yediğinizde vücudunuzda neler olur?

Yoğurt harika bir besindir. Her gün yoğurt yemek faydalı mıdır? Her gün yoğurt yediğinizde vücudunuzda nasıl değişiklikler olur? Hadi birlikte öğrenelim!

Hangi pirinç türü sağlık açısından daha iyidir?

Hangi pirinç türü sağlık açısından daha iyidir?

Bu yazıda en besleyici pirinç türleri ve seçtiğiniz pirincin sağlık yararlarından nasıl en iyi şekilde yararlanabileceğiniz ele alınıyor.

Sabahları zamanında nasıl uyanılır

Sabahları zamanında nasıl uyanılır

Uyku düzeninizi ve uyku vakti rutininizi oluşturmak, çalar saatinizi değiştirmek ve beslenmenizi buna göre ayarlamak, daha iyi uyumanıza ve sabahları zamanında uyanmanıza yardımcı olabilecek önlemlerden birkaçıdır.

Rent Please! oynamak için ipuçları Yeni Başlayanlar İçin Ev Sahibi Simülasyonu

Rent Please! oynamak için ipuçları Yeni Başlayanlar İçin Ev Sahibi Simülasyonu

Kiralayın Lütfen! Landlord Sim, iOS ve Android'de oynanabilen bir simülasyon mobil oyunudur. Bir apartman kompleksinin ev sahibi olarak oynayacak ve dairenizin içini iyileştirme ve kiracılar için hazır hale getirme amacıyla bir daireyi kiralamaya başlayacaksınız.

En Son Banyo Kule Savunma Kodları ve Kodların Nasıl Girileceği

En Son Banyo Kule Savunma Kodları ve Kodların Nasıl Girileceği

Bathroom Tower Defense Roblox oyun kodunu alın ve heyecan verici ödüller için kullanın. Daha yüksek hasara sahip kuleleri yükseltmenize veya kilidini açmanıza yardımcı olacaklar.

Transformatörlerin yapısı, sembolleri ve çalışma prensipleri

Transformatörlerin yapısı, sembolleri ve çalışma prensipleri

Transformatörlerin yapısını, sembollerini ve çalışma prensiplerini en doğru şekilde öğrenelim.

Yapay Zekanın Akıllı TVleri Daha İyi Hale Getirmesinin 4 Yolu

Yapay Zekanın Akıllı TVleri Daha İyi Hale Getirmesinin 4 Yolu

Daha iyi görüntü ve ses kalitesinden ses kontrolüne ve daha fazlasına kadar, bu yapay zeka destekli özellikler akıllı televizyonları çok daha iyi hale getiriyor!

ChatGPT neden DeepSeekten daha iyidir

ChatGPT neden DeepSeekten daha iyidir

Başlangıçta DeepSeek'e yönelik büyük umutlar vardı. ChatGPT'ye güçlü bir rakip olarak pazarlanan bir yapay zeka sohbet robotu olarak, akıllı sohbet yetenekleri ve deneyimleri vadediyor.

Fireflies.ai ile tanışın: Size Saatlerce Çalışma Kazandıran Ücretsiz AI Sekreteri

Fireflies.ai ile tanışın: Size Saatlerce Çalışma Kazandıran Ücretsiz AI Sekreteri

Önemli ayrıntıları not alırken gözden kaçırmak kolaydır ve sohbet ederken not almaya çalışmak dikkat dağıtıcı olabilir. Çözüm Fireflies.ai'dır.

Axolotl Minecraft nasıl yetiştirilir, Minecraft Salamander nasıl evcilleştirilir

Axolotl Minecraft nasıl yetiştirilir, Minecraft Salamander nasıl evcilleştirilir

Axolot Minecraft, oyuncuların su altında görev yaparken nasıl kullanacaklarını bilmeleri durumunda harika bir yardımcı olacaktır.

Sessiz Bir Yer: Önümüzdeki Yol PC Oyun Yapılandırması

Sessiz Bir Yer: Önümüzdeki Yol PC Oyun Yapılandırması

A Quiet Place: The Road Ahead'in yapılandırması oldukça yüksek olarak derecelendirilmiştir, bu yüzden indirmeye karar vermeden önce yapılandırmayı göz önünde bulundurmanız gerekecektir.