29 Tem 2023
Herşeyden önce, bu işleme nerede ihtiyaç duyduğumuza bakalım.
Örnek bir senaryo görelim:
Yukarıdaki struct
‘a baktığımızda, Text
adında pointer string saklayan bir alanımız var. Bu alana string tipinde bir pointer atamak isteseydik, ne gibi yöntemlere başvurmamız gerekirdi?
Aslında Go tarafından destekleniyor olsaydı, böyle bir isteği yerine getirmenin en kolay yolu aşağıdaki gibi olabilirdi:
Ancak string değerinin adresini &"text"
ile verme gibi bir yazım desteklenmediği için başka yöntemlere başvurmak zorundayız.
Ne yazık ki new
fonksiyonu da yardımcı olamaz, çünkü new
fonksiyonu sadece sıfır değerli bir değişken yaratır ve adresini döndürür. Bu nedenle belirlediğimiz değeri bir kerede atayamayız.
Peki bu durumda alternatif olarak nasıl yöntemler uygulayabileceğimize bakalım.
Adresi Text
alanına göndermek için bir yardımcı değişken oluşturabiliriz.
Adresi Text
alanına göndermek için bir yardımcı fonksiyon oluşturabiliriz.
Aslında en etkili yöntem bu yöntemdir. Çünkü daha okunabilir ve tekrar kullanılabilir bir yöntemdir.
string
yerine *int64
tipinde bir alanımız varsa, sayıyı int64
olarak belirtmeliyiz. Çünkü varsayılan ondalık sayı tipi int
‘tir. Bu nedenle parametreyi doğrudan Ptr(123)
olarak gönderemeyiz. Parametrenin tipini 2 farklı şekilde belirtebiliriz.
Dilim kullanarak uygulayabileceğimiz bir başka basit yöntem.
Ancak çok okunabilir bir yazı tarzı değil.
Bu yöntem de oldukça karışık görünüyor.
Bu yöntemler sadece ilkel veri tiplerinde geçerli değildir. Özel veri tipleri için de kullanabilirsiniz. Fakat özel veri tiplerinde ihtiyacımız olmadığı için, bu yazıda sadece ilkel veri tipleri için örnekler gördük.
Temel olarak uygulayabileceğimiz 5 yöntem bu şekildeydi. Umarım faydası dokunmuştur.