Go’da iota nedir? iota ne zaman ve nerede kullanılır?

Iota Go’nun artan değerli sabitlerde kullandığı bir yaklaşım (Ama Go’ya özel değil) , Bu yazıda Iota nedir ve nerelerde kullanılır örneklerle inceleyeceğiz.


Go’da iota nedir? iota ne zaman ve nerede kullanılır?

Iota Go’nun artan değerli sabitlerde kullandığı bir yaklaşım (Ama Go’ya özel değil) , Bu yazıda Iota nedir ve nerelerde kullanılır örneklerle inceleyeceğiz. İnanç Gümüş tarafından yazılmış Ultimate Visual Guide to Go Enums and iota başlıklı yazıda Go’da Enum ve Iota kullanımı ile ilgili çok daha ayrıntılı bilgi edinebilirsiniz.

Anlamak için basit bir IOTA kullanımı ile başlayalım

const (
    Sunday  int = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
)

Bu şekilde tanımladığınız bir değişkende Sunday = 0, Monday =1 ….. Satuday =6 değerleri bu sabitlere otomatik olarak atanacaktır.

Kaynak toplamaya dayalı bir oyun yapıyorsanız ve kaynak tiplerini bir sabitte belirlemek isterseniz aşağıdaki gibi iota tipinde bir değişken kullanabilirsiniz.

const (
    Wood  int = iota
    Metal
    Gold
)

Bu şekilde tanımladığımız bir sabitte, Wood başlangıç değeri olan 0’ı alırken, Metal 1, Gold ise 2 değerini otomatik olarak alacaktır. DİKKAT: sıralama önemlidir. Günün birinde bu sabitler böyle güzel görünmüyor, ben bunları alfabetik yapayım derseniz sabitlerin aldığı değerlerde buna göre değişecektir.

const (
    Metal  int = iota
    Gold
    Wood
)

Bu tanımda Metal 0, Gold 1, Wood ise 2 değerini alır ve kayıtlı bir oyunu geri yüklediğinizde bütün kaynakların değerleri yer değiştirmiş olarak karşınıza çıkacaktır. Bu açıdan IOTA’yı dikkatli kullanmalısınız.

Iota tanımı içindeki boş satırlar veya yorum satırları iota değerini arttırmaz. Eğer atlamak istediğiniz değerler varsa alt çizgi _ operatörünü kullanabilirsiniz.

const (
    _ int = iota    // 0 değerini atladık
    Sales           // 1
    Accounting      // 2
    _               // Üçü atladık
    _               // Dördü atladık

    // Bu yorum satırı da, üstteki ve alttaki boş satırlarda iota'yı artırmaz.
    
    CustomerSupport // 5

    // Bu yorum satırı iotayı arttırmaz
    Finance         // 6
)

IOTA’yı bitwise shift işlemleri için de kullanabilirsiniz.

const (
    addUser = 1 << iota // 0000001 = 1
    editUser            // 0000010 = 2
    deleteUser          // 0000100 = 4

    adminRights = addUser | editUser | deleteUser   // 7
)

Yukarıdaki örnekte iota her satırda otomatik olarak bir bit kaydıracaktır.

Sabitleri eşleştirerek her bir eş grubu için farklı bir iota tanımı yapabilirsiniz.

const (
    cheap1, expensive1 = iota +1, iota +2 // cheap1 = 1, expenseive1 = 2
    cheap2, expsenvie2                    // cheap2 = 2, expenseive1 = 3
    cheap3, _                             // cheap3 = 3
)

Iota değerini sıfırlamak için yeni bir const grubu kullanmanız yeterlidir. Tersten baktığımızda iota’nın sıfırlanmasını istemiyorsanız işinizi tek bir const grubu içinde bitirmelisiniz

const (
    Wood  int = iota   // Wood = 0
    Metal              // Metal = 1
    Gold               // Gold = 2
)

const (
    Sunday int = iota    // Sunday = 0
    Monday               // Monday = 1
)

const (
    Test int = iota      // Test 0
)

Dolaylı bir yöntemle iota değerini geriye saymak için de kullanabilirsiniz.

const (
    max = 10
)
const (
    a = (max - iota) // 10
    b                // 9
    c                // 8
)

Iota temel olarak sabit tanımlarında kullanacağımız bir sayaç görevi görüyor ve akıllı bir kullanımla işleri çok kolaylaştırıyor.

Aklınıza gelen farklı kullanım yöntemleri varsa yorumlara bırakabilirsiniz.

Kapak Fotoğrafı Bich Tran

Bu Yazıda Yapılan Değişiklikler
  • 11.05.2022: Yazı özeti düzenlendi.

Bir soru, öneri ya da yorumunuz mu var?

Evren Bal

Ben Evren BAL

1996'dan beri ‘Internet canlısıyım!’

Evren Bal Hakkında daha fazla bilgi.

Tanışmak isterseniz hemen sosyal medyadan iletişime geçebilirsiniz.

Bana Ulaşın

Bana Ulaşın

  • Bir sorunuz mu var?
  • Yazıda bir hata mı farkettiniz?
  • Sayfa ile ilgili bir öneriniz mi var?
  • Yazmamı önereceğiniz bir konu mu var?

Lütfen iletişim formunu kullanarak veya sosyal medya hesaplarımdan bana ulaşın.

Digital Ocean Logo

VPS sunucusu denemek ister misiniz?

Digital Ocean&apos;a referans bağlantımdan kayıt olarak yeni oluşturacağınız hesabınızı 60 gün geçerli 100$ kredi ile açabilirsiniz. Bu miktar yüksek performanslı VPS&apos;leri bile denemeniz için yeterlidir.

Yapacağınız onca kurulumun boşa gitmemesi için benim tavsiyem uzun vadede kullanabileceğiniz özellik ve maliyetlerde bir sunucu oluşturmanızdır.

Ücretsiz 100$ kredi bağlantısı

60 günlük denemeniz sonunda eğer devam etmek istemezseniz hiç bir ücret ödemeyeceksiniz. Hizmeti kullanmaya devam etmek isterseniz harcamanız 25$&apos;a ulaştığında benim hesabıma da 25$ kredi yüklenecektir.

Diğer bir deyişle, siz 100$ ücretsiz krediyi her halükarda kazanırken, daha sonra ücretli devam etmeye karar verirseniz ben de 25$ kredi kazanacağım.

Copyright © 2022 - Evren BAL