K{}DAMAN

Etiketler


Son Yazılar


K{}DAMAN

Yazılım projenizi geliştirirken daha önce çözülmüş kodlama sorunlarına neden zaman harcıyorsunuz?


Ruby10

Veri yapısı üzerine yineleyici yazmak

Problem: Özel bir veri yapısı oluşturdunuz ve bunun için each metodunu uygulamak istiyorsunuz veya mevcut bir veri yapısı üzerinde sıradışı bir yineleme metodu uygulamak istiyorsunuz. Çözüm: Karmaşık veri yapıları genellikle temel veri yapılarından oluşur: çırpı, diziler vb. Temel veri yapılarının tümü each metodunu tanımlamıştır. Veri [...]

Melih KocatürkMelih Kocatürk

Blog argümanını değişkene bağlamak

Problem: Bir kod bloğu alan bir metod yazdınız, ancak bloğu sadece yield ile çağırmanız yeterli değil. Bir şekilde kod bloğunu bir değişkene bağlamanız gerekiyor, böylece bloğu doğrudan değiştirebilirsiniz. Çözüm: Blok değişkeninin adını, metod argümanlarının sonuna ekleyin. Değişken adının önüne & işareti koyun, böylece Ruby normal bir [...]

Melih KocatürkMelih Kocatürk

Blok kabul eden bir metod yazmak

Problem: Kod bloğunu kabul edebilecek bir metod yazmak istiyorsunuz: Array#each, Fixnum#upto ve diğer yerleşik Ruby metodları gibi çalışan bir metod. Çözüm: Metodun bir bloğu kabul etme yeteneğine sahip olabilmesi için özel bir şey yapmanız gerekmez. Herhangi bir yöntem blok kullanabilir. İstediğiniz zaman bir bloğu yield ile [...]

Melih KocatürkMelih Kocatürk

Blok oluşturma ve çağırma

Problem: Ruby kodlarını bir nesnenin içine yerleştirmek istiyorsunuz, böylece onu saklayıp daha sonra çağırabilirsiniz. Çözüm: Kıvrımlı parantez içine alınmış Ruby kod bloklarını görmüş olmalısınız. Bir blok nesnesini aşağıdaki gibi tanımlamanın mümkün olduğunu düşünebilirsiniz:

Melih KocatürkMelih Kocatürk

Kod blokları ve yineleme

Ruby’de bir kod bloğu (veya sadece “blok”), Ruby kodlarını içeren bir nesnedir. Kod blokları, Ruby’nin görsel olarak ayırt edici özelliğidir ve aynı zamanda diğer programlama dillerden gelenler için kafa karıştırıcı olabilir. Temel olarak bir Ruby kod bloğu, adı olmayan bir yöntemdir.

Melih KocatürkMelih Kocatürk