Receiver Seçimi
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 9 / 68.
Artık hem değer (value) hem de işaretçi (pointer) alıcılarını anladığınıza göre, temel soru şudur: her birini ne zaman kullanmalısınız? Karar, metodunuzun alıcı ile ne yapması gerektiğine bağlıdır.
Metodunuzun orijinal struct'ı değiştirmesi gerektiğinde bir pointer receiver kullanın. Pointer receiver'lar gerçek struct örneğiyle çalıştığından, metodun içinde yapılan tüm değişiklikler metot döndükten sonra da kalıcı olacaktır. Bu; alanları güncelleyen, durumu değiştiren veya orijinal veriyi etkilemesi gereken işlemler gerçekleştiren metotlar için gereklidir.
Metodunuzun struct verilerini değiştirmeden sadece okuması gerektiğinde bir value receiver (değer alıcısı) kullanın. Value receiver'lar bir kopya üzerinde çalışır; bu nedenle değer hesaplayan, çıktıyı formatlayan veya orijinal struct üzerinde değişiklik gerektirmeyen işlemler yapan metodlar için idealdirler. Ayrıca, orijinal verinin değişmeyeceğini garanti ederek güvenli bir yapı sunarlar.
Genel bir kural olarak: eğer metodunuz struct yapısını değiştiriyorsa, bir pointer receiver kullanın. Eğer metodunuz struct yapısından sadece okuma yapıyorsa, bir value receiver kullanın. Bu yaklaşım, kodunuzun niyetini netleştirir ve verilerinizde istenmeyen değişikliklerin önlenmesine yardımcı olur.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Kopya kağıdı
Metodunuzun orijinal struct'ı değiştirmesi gerektiğinde bir pointer receiver kullanın:
- Metot içinde yapılan değişiklikler, metot döndükten sonra da kalıcı olur
- Alanları güncelleyen veya durumu değiştiren metotlar için gereklidir
Metodunuzun struct'tan sadece veri okuması gerektiğinde bir value receiver kullanın:
- Bir kopya ile çalışır, bu nedenle orijinal veriler değişmeden kalır
- Değerleri hesaplayan veya çıktıyı formatlayan metotlar için mükemmeldir
- İstenmeyen değişikliklerin olmayacağını garanti ederek güvenlik sağlar
Genel kural: Eğer metodunuz struct'ı değiştiriyorsa, bir pointer receiver kullanın. Eğer metodunuz struct'tan sadece okuma yapıyorsa, bir value receiver kullanın.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve Davranışlar