Üst Düzey Ruby Eğitimi #2 (Semboller, Struct)

Bunjo

Uzman üye
14 Ara 2020
1,587
1,885
HTTParty
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.

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:

  1. Immutable (Değiştirilemez): Semboller değiştirilemez (immutable) olduğundan, bir kez oluşturulduktan sonra değerleri değiştirilemez.
  2. 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.
  3. 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.
 

Zwo

Katılımcı Üye
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.

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:

  1. Immutable (Değiştirilemez): Semboller değiştirilemez (immutable) olduğundan, bir kez oluşturulduktan sonra değerleri değiştirilemez.
  2. 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.
  3. 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.
Elinize sağlık
 

GHOSTJEONSA

Yeni üye
5 May 2020
36
18
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.

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:

  1. Immutable (Değiştirilemez): Semboller değiştirilemez (immutable) olduğundan, bir kez oluşturulduktan sonra değerleri değiştirilemez.
  2. 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.
  3. 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.
Teşekkürler
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.