int
kullanan vakaların büyük çoğunluğu daha mantıklıdır. İşte bazı nedenler şunlardır:
- Git örtük Eğer düşünmek gerektiğini bile, sayısal türleri arasında dönüştürmez.
int
yerine imzasız bir tür kullanmaya başlarsanız, diğer kitaplıklar ya da API'ler, imzasız türlerle uğraşmayı tercih etmedikleri için, çok sayıda tür dönüşümle kodunuzu karantinaya almanız gerekir; çünkü, int
değerlerini döndüren türlenmemiş sabit sayısal ifadeler nedeniyle,
- İşaretsiz türler, imzalı türlerden daha az taşmaya daha yatkındır; çünkü 0 (işaretsiz türün sınır değeri), bilgisayar programlarında doğal olarak oluşan bir değerden çok daha fazladır, örneğin, -9223372036854775808.
- İmzaladığınız değerleri kısıtladığından işaretsiz bir yazı tipi kullanmak istiyorsanız, sessiz taşmayı birleştirdiğinizde ve yalnızca sürekli yayılımı derlediğinizde muhtemelen pazarlık almıyorsunuzdur. aramak. Örneğin,
math.MinInt64
sabitini uint
'a dönüştüremezken, int
değişkenini math.MinInt64
değerini uint
değerine kolayca dönüştürebilirsiniz. Ve muhtemelen if
numarasına sahip olmak kötü bir Go stili değildir, atamaya çalıştığınız değerin programınız için geçerli olup olmadığını kontrol edin. Eğer önemli bellek baskısı yaşıyoruz ve tüm değer uzay yere hafifçe daha küçük işaretli tür teklif ne bitti sürece
, ben int
kullanarak bile sırf geliştirme maliyetinin ise çok daha verimli olacağını düşünmek istiyorum. Ve hatta o zaman, programınızın bellek ayak izi başka bir yerde bir sorun ya da Go gibi yönetilen bir dil ihtiyaçlarınız için en uygun değildir.
Ne demek "maliyet"? Onlardan milyarlarca dolar saklamadığın ve onlara milyarlarca işlem yapmadığınız sürece, farkın farkına bile varacağınızdan şüpheliyim. Karşılaştığınız değerleri temsil eden her türlü gösterim kullanın. – tadman
Ayrıca kaynak kodunda değişken türünü dönüştürmek için geliştirici yazma satırları da dahil maliyet. –
Yanlış tür seçtiyseniz her zaman dönüştürüyorsanız. – tadman