Merhaba, Ben Bunjo! Bu eğitimin ikinci bölümüyle devam ediyoruz - birinici bölüm için bana tıkla - bu bölümümüzde Ruby dilindeki "Semboller" ve "Struct" tiplerini öğreneceğiz.
Anlatacaklarım bu kadardı teşekkür ederim. Sorularınız olursa konu üzerinden yazabilirsiniz.
Semboller (Symbols):
Semboller, Ruby programlamasında kullanılan hafif ve sabit isimlerdir. Semboller, bir string gibi görünebilir, ancak birkaç önemli farkları vardır:- Immutable (Değiştirilemez): Semboller değiştirilemez (immutable) olduğundan, bir kez oluşturulduktan sonra değerleri değiştirilemez.
- Hafıza Verimliği: Semboller, aynı değeri paylaşan tek bir nesneyi temsil ederler. Yani, aynı sembolü birkaç kez kullanmak, aynı nesneyi referans eder ve bu nedenle bellek verimlidir.
- Kullanım Alanları: Semboller genellikle hash anahtarları, metot isimleri veya diğer durumlarda bir sabit adı temsil etmek için kullanılır.
Sembol Tanımlama ve Kullanma:
Semboller, iki nokta ( " : " ) ile başlar ve bir veya daha fazla karakter içerebilir.
Ruby:
# Sembol tanımlama
my_symbol = :example
# Başka bir sembol tanımlama
another_symbol = :hello
# Sembol ve string karşılaştırması
puts :example == "example".to_sym # true
Değiştirilemezlik (Immutable):
Semboller, değiştirilemez (immutable) olduğundan, bir kez oluşturulduktan sonra değerleri değiştirileme
Ruby:
my_symbol = :example
# Değiştirmeye çalışma (hata verecek)
# my_symbol[0] = 'E'
# NoMethodError: undefined method `[]=' for :example:Symbol
Hafıza Verimliliği:
Semboller, aynı değeri paylaşan tek bir nesneyi temsil ederler. Bu nedenle, aynı sembolü birkaç kez kullanmak, aynı nesneyi referans eder ve bu nedenle bellek verimlidir.
Ruby:
symbol1 = :example
symbol2 = :example
puts symbol1.object_id == symbol2.object_id # true
Sembol Kullanım Alanları:
Semboller genellikle hash - ileri derslerde anlatılacak - anahtarları, metot isimleri veya diğer durumlarda sabit bir adı temsil etmek için kullanılır.
Ruby:
# Hash anahtarları olarak semboller
user = {
:name => "John",
:age => 30,
:gender => "Male"
}
# Kısayol olarak semboller
user = {
name: "John",
age: 30,
gender: "Male"
}
Struct:
Struct, Ruby'de basit veri yapılarını temsil etmek için kullanılan bir sınıf yapısıdır. Struct kullanarak, bir sınıf tanımlamadan hızlı bir şekilde bir nesne oluşturabilirsiniz. Struct'ın oluşturduğu sınıf, belirli bir yapıdaki özelliklere sahip nesneleri temsil eder, kısacası ufak bir "database" alternatifi olarak kullanabilirsiniz.Struct Tanımlama:
Struct, Struct.new metodu kullanılarak tanımlanabilir. Bu metot, bir sınıf tanımlamak için kullanılabilir ve tanımlandıktan sonra, bu sınıftan nesneler oluşturabilirsiniz.
Ruby:
# Struct tanımlama
Person = Struct.new(:name, :age, :gender)
# Struct'ı kullanarak nesne oluşturma
person = Person.new("John", 30, "Male")
# Struct özelliklerine erişme
puts person.name # "John"
puts person.age # 30
puts person.gender # "Male"
Struct Özellikleri:
Bir Struct tanımlandığında, belirtilen özelliklere sahip bir sınıf oluşturulur. Oluşturulan bu sınıfın özelliklerine . (nokta) ile erişebilirsiniz.Struct Kısayolu:
Struct tanımlamak için yukarıdaki örnekteki gibi Struct.new kullanılabilir. Ancak, Ruby aynı işlemi daha kısa bir şekilde yapmanıza izin verir:
Ruby:
Person = Struct.new(:name, :age, :gender)
Struct'tan Türetilen Nesneler:
Struct tanımlandıktan sonra, bu sınıftan nesneler oluşturabilirsiniz. Oluşturulan nesneler, belirtilen özelliklere sahip olacaktır.Struct ile Destructuring:
Ruby'de Struct kullanarak destructuring özelliğinden yararlanabilirsiniz. Destructuring, birden çok değeri ayrı ayrı değişkenlere atama yeteneğidir.
Ruby:
person = Person.new("Alice", 25, "Female")
# Destructuring kullanarak özelliklere erişme
name, age, gender = person
puts name # "Alice"
puts age # 25
puts gender # "Female"
Anlatacaklarım bu kadardı teşekkür ederim. Sorularınız olursa konu üzerinden yazabilirsiniz.