İçerik Tablosu
- Ruby’de
%i
ve%I
Arasındaki Fark Nedir? %i
ve%I
Ne Zaman Kullanılmalı?- En İyi Uygulamalar
- Sık Sorulan Sorular
Ruby’de %i
ve %I
Arasındaki Fark Nedir?
Ruby’de hem %i
hem de %I
, sembol dizileri oluşturmak için kullanılan dizi litrelleridir. Semboller, sıklıkla karma anahtarları veya tanımlayıcılar olarak kullanılan hafif, değiştirilemez nesnelerdir. Ana fark, büyük/küçük harfleri nasıl işlediklerinde yatmaktadır:
%i
: Tüm girişi küçük harfe çevirir. Köşeli parantezler içindeki büyük harfler, kelimenin tam anlamıyla dizeler olarak yorumlanır ve daha sonra sembollere dönüştürülür. Büyük/küçük harfleri korumayı amaçlıyorsanız bu beklenmedik sonuçlara yol açabilir.%I
: Büyük/küçük harfleri korur. Büyük ve küçük harfler her ikisi de doğru şekilde sembol olarak yorumlanır ve orijinal büyük/küçük harf durumu korunur.
Farkı gösteren bir örnek:
lowercase_symbols = %i[one Two three]
puts lowercase_symbols # => [:one, :"Two", :three] # Not: "Two" bir string semboldür
uppercase_symbols = %I[one Two three]
puts uppercase_symbols # => [:one, :Two, :three] # Hepsi semboldür
%i
ve %I
Ne Zaman Kullanılmalı?
%i
ve %I
arasında seçim, ihtiyaçlarınıza bağlıdır:
- Sembolleriniz için büyük/küçük harf duyarlılığı önemsiz olduğunda ve küçük harfli sembol dizileri oluşturmanın özlü bir yoluna ihtiyacınız olduğunda
%i
kullanın. Bu genellikle okunabilirliği artırır. - Büyük/küçük harf duyarlılığı önemli olduğunda (örneğin,
:CONSTANT
‘ın:constant
‘tan farklı olduğu sabitleri veya numaralandırmaları temsil ederken)%I
kullanın. Bu, sembollerinizin büyük/küçük harf durumunun doğru bir şekilde temsil edilmesini sağlar.
En İyi Uygulamalar
- Tutarlılık: Karışıklığı önlemek için belirli bir projede bir literal seçin ve ona bağlı kalın.
- Okunabilirlik: Uzun listeler için bunları daha küçük, daha yönetilebilir dizilere bölün.
- Adlandırma Kuralları: Okunabilirliği artırmak için çok kelimeli semboller için alt çizgiler kullanın (örneğin,
%i[first_name last_name]
). - Belirsizliği Önleyin: Büyük/küçük harflerden emin değilseniz,
%I
genellikle daha güvenlidir.
Sık Sorulan Sorular
- Dizelerden başka veri türleri kullanabilir miyim? Hayır, giriş her zaman dize olarak yorumlanır ve daha sonra sembollere dönüştürülür.
- Doğrudan bir sembol kullanırsam ne olur? Dize olarak işlenir ve sonuçta ortaya çıkan sembolün büyük/küçük harf durumunu değiştirir.
- Performans farkı var mı? Bu litreller ve dizileri manuel olarak oluşturma arasında performans farkı ihmal edilebilir düzeydedir.