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

WebP görüntüleri Chrome, Coc Cocta PNG, JPGye nasıl dönüştürülür

WebP görüntüleri Chrome, Coc Cocta PNG, JPGye nasıl dönüştürülür

WebP resimlerini PNG ve JPG formatlarına dönüştürmek için bunu birçok farklı şekilde yapabiliriz; örneğin, bunu doğrudan resim URL'si üzerinden yapabilir veya resim dönüştürme araçlarını kullanabiliriz.

ChatGPTnin Canvas Modunu Kullanmanın 4 Yolu

ChatGPTnin Canvas Modunu Kullanmanın 4 Yolu

ChatGPT'nin yeni Canvas modu, dünyanın lider Üretken Yapay Zeka motorunda yazma ve düzenlemeye yeni bir boyut katıyor.

İnsanların AI Fotoğraf Editörleri Hakkında En Çok Sevmediği Şeyler

İnsanların AI Fotoğraf Editörleri Hakkında En Çok Sevmediği Şeyler

Yapay zeka destekli fotoğraf düzenleyiciler düzenleme iş akışınızı önemli ölçüde kolaylaştırabilir ancak mükemmel olmaktan uzaktırlar. Kullanıcıların bu uygulamalarda hoşlanmadığı birkaç şey var ve bugünün yazısında bunların neler olduğunu keşfedeceksiniz.

Google Play Storeun uygulamaları otomatik olarak güncellememesi sorununu düzeltin

Google Play Storeun uygulamaları otomatik olarak güncellememesi sorununu düzeltin

Play Store uygulamaları otomatik olarak güncellemediğinde, kullanıcılar yeni özellikleri, güvenlik yamalarını ve hata düzeltmelerini kaçırma riskiyle karşı karşıya kalıyor. Neyse ki, bu adımları kullanarak Google Play Store'u uygulamalarınızı otomatik olarak güncelleyecek şekilde yapılandırabilirsiniz.

WiFi Nedir? WiFi nasıl çalışır?

WiFi Nedir? WiFi nasıl çalışır?

WiFi, dünyanın dört bir yanındaki insanların cihazlarını kablosuz olarak internete bağlamak için kullandıkları bir yerel alan ağı ve kablosuz İnternet erişimi biçimidir.

Nintendo, Sanal Oyun Kartları ile dijital oyunların paylaşılma biçiminde devrim yaratıyor

Nintendo, Sanal Oyun Kartları ile dijital oyunların paylaşılma biçiminde devrim yaratıyor

Nintendo, dijital oyunların dağıtım şeklini tamamen değiştirecek bir hamleyle, Nintendo Direct etkinliğinde Sanal Oyun Kartları sistemini resmen tanıttı.

Messengerda telefon ve bilgisayarda dosya gönderme talimatları

Messengerda telefon ve bilgisayarda dosya gönderme talimatları

Messenger'da fotoğraf göndermenin yanı sıra kullanıcılar artık uygulama üzerinden pdf, doc, xlx gibi tüm belge dosya formatlarında dosyaları da başkalarına gönderebilecek.

CapCutta altyazı ve şarkı sözleri otomatik olarak nasıl eklenir

CapCutta altyazı ve şarkı sözleri otomatik olarak nasıl eklenir

CapCut ayrıca bazı ünlü video altyazı uygulamaları gibi videoya altyazı ekleme seçeneğine de sahiptir. Uygulama daha sonra videodaki sesi ve konuşmayı otomatik olarak tanıyor ve videoda gösteriyor.

2,4 GHz ve 5 GHz WiFi arasındaki fark

2,4 GHz ve 5 GHz WiFi arasındaki fark

Eski yönlendiricinizi değiştirmeye karar verdiniz. Yeni kablosuz yönlendiricinizi kutusundan çıkardığınızda neden iki ağ olduğunu merak ediyor olabilirsiniz: 2,4 GHz ve 5 GHz. Peki 5GHz ağı daha mı güçlü? Aralarındaki fark nedir?

Günümüzün en iyi 10 internet güvenlik yazılımı

Günümüzün en iyi 10 internet güvenlik yazılımı

Günümüzde kullanıcılar PC, Mac veya akıllı telefon gibi tüm cihazlarını korumak için ödeme yapabiliyor. Ancak bugün piyasada çok fazla seçenek olduğu için nereden başlayacağınızı bilmek zor olabilir. Aşağıda günümüzde mevcut olan en iyi İnternet güvenlik yazılım paketlerinin bir listesi bulunmaktadır.

Adobe Express dijital sanatçılar ve içerik oluşturucular için neden en iyi araçtır?

Adobe Express dijital sanatçılar ve içerik oluşturucular için neden en iyi araçtır?

Dijital içerik oluşturucular için zengin araçlar sunan Adobe Express, herkes için en iyi hepsi bir arada yaratıcı araçtır ve hiçbir yere kaybolmayacaktır.

Gmaili masaüstü uygulamasına nasıl dönüştürebilirim?

Gmaili masaüstü uygulamasına nasıl dönüştürebilirim?

Gmail'i daha rahat kullanabilmek için, Gmail'i artık manuel olarak erişmenize gerek kalmadan bilgisayarınızda bir uygulamaya dönüştürebilirsiniz.

En son Thien Nhai Minh Nguyet Dao Kodu ve kodun nasıl girileceği

En son Thien Nhai Minh Nguyet Dao Kodu ve kodun nasıl girileceği

Thien Nhai Minh Nguyet Dao Kodu, oyuncuların oyuna ilk katıldıklarında sıkılmamalarına yardımcı oluyor.

Hapicin Neden Favori Ücretsiz Fotoğraf Editörü Olduğunun 7 Nedeni

Hapicin Neden Favori Ücretsiz Fotoğraf Editörü Olduğunun 7 Nedeni

TikTok ve CapCut'ın sahibi ve geliştiricisi olan Hypic, birçok kişinin telefonunda kullandığı bir fotoğraf düzenleme uygulaması ve favori olmasının birçok nedeni var.

Daha ucuz, geri dönüştürülebilir ve patlamayan bir su pili yaratmak

Daha ucuz, geri dönüştürülebilir ve patlamayan bir su pili yaratmak

Melbourne'deki (Avustralya) RMIT Üniversitesi'ndeki bilim insanları, geleneksel pillerde kullanılan tehlikeli kimyasal elektrolitleri suyla değiştirerek geri dönüştürülebilir bir su pili ürettiler.