Ruby dünyasında tamamen yeniyim ve biraz Symbols kavramıyla karıştı. Semboller ve Değişkenler arasındaki fark nedir? Neden sadece değişken kullanmıyorsunuz?
Teşekkürler.
Ruby dünyasında tamamen yeniyim ve biraz Symbols kavramıyla karıştı. Semboller ve Değişkenler arasındaki fark nedir? Neden sadece değişken kullanmıyorsunuz?
Teşekkürler.
Yanıtlar:
Değişkenler ve semboller farklı şeylerdir. Bir değişken, farklı veri türlerine işaret eder. Ruby'de, bir sembol değişkenden çok dize gibidir.
Ruby'de bir dize değişebilir, bir sembol değişmezdir. Bu, sadece bir sembolün bir kopyasının oluşturulması gerektiği anlamına gelir. Böylece, varsa
x = :my_str
y = :my_str
:my_str
Sadece bir kez oluşturulur ve edilecek x
ve y
nokta belleğinin aynı bölgeye. Öte yandan, varsa
x = "my_str"
y = "my_str"
içeren bir dize my_str
oluşturulur iki kez ve x
ve y
farklı örneklerine işaret edecektir.
Sonuç olarak, semboller genellikle Ruby'deki enums değerlerine eşdeğer olarak kullanılır, ayrıca bir sözlük (karma) için anahtarlar kullanılır.
#mySymbol
.
Ruby'deki sembol temelde gerçek dünyadaki sembolle aynıdır. Bir şeyi temsil etmek veya adlandırmak için kullanılır.
Örneğin, bir tür durumu temsil etmek için simgeler çok sık kullanılır.
order.status = :canceled
order.status = :confirmed
Ayrıca sembole anında enum olarak bakabilirsiniz. Bir sembol tanımlamanıza gerek yok, sadece kullanın. Bu makale, onu ayrıntılı olarak açıklar.
Genellikle, değişkenler dizelerle karıştırılma eğilimindedir, ancak onu bir değişken gibi düşünerek sizi anlayabilirim. Anlaşılabilir. Bu şekilde düşün:
Bir oyunda bir oyuncunun durumu bir sayı ile temsil edilir. 1 canlı, 2 ise emin değil, 3 ölü demektir. Bu kolayca sembollerle değiştirilebilir. Semboller olabilir :alive
:unsure
ve :dead
. Bir oyuncunun hayatta olup olmadığını kontrol etmek için, bunu yapmak yerine:
if player_status == 1
Bunu yapabilirsin:
if player_status == :alive