[]
Pointer hokkabazlığı
Elimde parametre olarak pointer alan bi fonksiyon var. Şöyle bişey:
func myFunc(var *type)
Bende bu fonksiyonlardan milyon tane var. Şimdi ben her zaman dışarıdan gelen "var" değişkenini kullanmak istemiyorum, bazı fonksiyonlarda aynı tipten yeni bir obje kullanmak istiyorum.
Fonksiyonun ilk satırında
var = new(&type) diyip yeni bi obje yaratabilirim. Ama bu durumda bu değişken bir pointer olduğu için, değişkenin değeri değişecek ve bu da diğer fonksiyonlara etki edecek. Bunu istemiyorum.
var2 = new(&type) dersem de fonksiyonların içinde "var" olan her yeri "var2" olarak değiştirmem gerekecek, bunu da istemiyorum çünkü çok iş.
Aklıma gelen çözüm: fonksiyon imzasından bu "var *type" kısmını kaldırıp, her fonksiyonun ilk satırına
var = getVar()
gibi bişey koyup factory pattern'ına dönmek. Regex kullanacağım için tüm codebase'de bu değişikliği kolayca yapabilirim. getVar() içinde de, fonksiyonun çağırıldığı yere göre yeni obje yarat / eskisini tekrar kullan vs. işlerini handle edebilirim.
Ama daha güzel, daha temiz bir çözüm yöntemi aklına gelen varsa önerilere açığım.
func myFunc(var *type)
Bende bu fonksiyonlardan milyon tane var. Şimdi ben her zaman dışarıdan gelen "var" değişkenini kullanmak istemiyorum, bazı fonksiyonlarda aynı tipten yeni bir obje kullanmak istiyorum.
Fonksiyonun ilk satırında
var = new(&type) diyip yeni bi obje yaratabilirim. Ama bu durumda bu değişken bir pointer olduğu için, değişkenin değeri değişecek ve bu da diğer fonksiyonlara etki edecek. Bunu istemiyorum.
var2 = new(&type) dersem de fonksiyonların içinde "var" olan her yeri "var2" olarak değiştirmem gerekecek, bunu da istemiyorum çünkü çok iş.
Aklıma gelen çözüm: fonksiyon imzasından bu "var *type" kısmını kaldırıp, her fonksiyonun ilk satırına
var = getVar()
gibi bişey koyup factory pattern'ına dönmek. Regex kullanacağım için tüm codebase'de bu değişikliği kolayca yapabilirim. getVar() içinde de, fonksiyonun çağırıldığı yere göre yeni obje yarat / eskisini tekrar kullan vs. işlerini handle edebilirim.
Ama daha güzel, daha temiz bir çözüm yöntemi aklına gelen varsa önerilere açığım.
Fonksiyona bazen null gonderme sansin yok mu?
- lapaz (04.04.23 17:41:35)
bu soruyu tekrar okuyacagim fakst yakaladigim birkac keyword ile function pointer aranan şey gibi geldi bana.
- sparkle kiddle (04.04.23 18:37:23)
@lapaz, evet bazen null gönderebiliyorum, ama içeride update edersem side effect olur yine.
@sparkle kiddle, factory derken kastettiğim oydu aynen. direkt "var" göndermek yerine, yerine göre uygun "var" dönen fonksiyon göndereceğim.
bugün full yattığım için uğraşamadım bununla ama bakalım yarın neler olacak :)
@sparkle kiddle, factory derken kastettiğim oydu aynen. direkt "var" göndermek yerine, yerine göre uygun "var" dönen fonksiyon göndereceğim.
bugün full yattığım için uğraşamadım bununla ama bakalım yarın neler olacak :)
- plutongezegendegilmi (04.04.23 23:43:02)
1