Bloğa geri dön

Ruby'deki Veri Türlerine Genel Bir Bakış

Ruby'deki Veri Türlerine Genel Bir Bakış

Ruby tanınmış bir programlama dilidir. Sadelik ve üretkenliği artırmayı amaçlar. Aynı zamanda tamamen nesne yönelimli bir programlama dilidir. Ek olarak Ruby, okunması doğal ve yazılması kolay, zarif bir sözdizimi ile birlikte gelir.

Herhangi bir programlama, çeşitli veri türlerinin yönetilmesini gerektirir. Bir veri türü, belirli bir veri sınıfını tanımlar. Makineye programdaki verileri nasıl işlemesi gerektiğini söyler. Veri türleri, verilerle ne yapılabileceğini (gerçekleştirilebilecek işlemler dahil) belirlemek için çok önemlidir. Bu eğitimde, Ruby'de bulunan veri türlerini daha derinlemesine inceleyeceğiz. Ayrıca dinamik yazımı da keşfedeceğiz. Bu özelliği kullanarak Ruby, açıkça bildirmeden bir değişkenin veri türünü otomatik olarak belirleyebilir. Başlayalım!

Gereksinimler

Bu kılavuzda gösterilen adımları uygulamak ve hayata geçirmek için aşağıdaki bileşenlere ihtiyacınız olacak:

Ruby'deki veri türleri

Ruby, herhangi bir programlama dilinde karşılaşacağınız tüm yaygın veri türlerini barındırır: tamsayılar, ondalıklı sayılar, dizeler, diziler, semboller, hash'ler vb. Sırada, Ruby'nin çeşitli veri türleriyle nasıl çalışılacağına dair genel bir bakış sunacağız.

Adım 1 – Tamsayılar

Matematiğe benzer şekilde, tamsayılar bilgisayar programlamada tam sayılardır. Değer pozitif, negatif veya 0 olabilir. Değer aralığı aşağıdaki gibidir:

Ruby'de tamsayıları deneme zamanı. İlk örnek, ekrana basit bir tamsayı yazdırmaktır:

Data Types in Ruby 1

Sırada, bir tamsayı değişkeni ile çalışacağız. Burada, sample_int değişkeni bir tamsayı değeri (99) içerir ve print işlevi değişken değerini ekrana yazdırır:

Data Types in Ruby 2

Tamsayılarla matematik işlemleri de yapabiliriz. Aşağıdaki örnek, iki tamsayının basit bir toplamını göstermektedir:

Büyük sayılarla çalışırken, okumayı kolaylaştırmak için genellikle virgül (,) kullanırız. Örneğin, daha iyi okunabilirlik için bir milyon (1000000), 1,000,000 olarak yazılır. Virgül kullanımı yasak olsa da Ruby, alt çizgi ( _) karakterinin sınırlayıcı olarak kullanılmasına izin verir. Aşağıdaki örneğe bir göz atın:

Data Types in Ruby 3

Alt çizgilerin kullanılması, özellikle büyük tamsayı değerleriyle çalışırken kodun okunabilirliğini artırır.

Adım 2 – Ondalıklı Sayılar

Bir ondalıklı sayı (veya kısaca float) bir gerçel sayıyı temsil eder. Matematiksel tanıma benzer şekilde, gerçel sayılar rasyonel veya irrasyonel olabilir. In Ruby, a float is basically a number containing a decimal point.

Ekrana bir float değeri yazdırmayı deneyelim:

Sıradaki örnek, bir float değişkeni tanımlamayı göstermektedir:

Float değerleri ve değişkenleri üzerinde çeşitli matematiksel işlemler de gerçekleştirebiliriz. Aşağıdaki örnek, iki float sayısının basit bir toplamını göstermektedir:

Bir float ile bir tamsayıyı toplarsak ne olur? Elde edilen değer float olacaktır. Aşağıdaki örnekte, 55.0 tam bir sayı olmasına rağmen float olarak kabul edilir:

Adım 3 – Boolean

Boolean'lar , matematiğin mantık dalının doğruluk değerlerini temsil eder. Ruby'de Boolean veri türleri iki değerle temsil edilir: true ve false:

  • Büyüktür

    • 100 > 99: true

    • 99 > 100: false

  • Küçüktür

    • 500 < 999: true

    • 999 < 500: false

  • Eşittir

    • 10 == 10: true

    • 9 == 99: false

Sayılara benzer şekilde, bir true veya false bir değişkendeki değer. Aşağıdaki örnek bu özelliği göstermektedir:

Adım 4 – Stringler

Programlamada, bir string bir karakter dizisi (harfler, sayılar ve semboller) olarak temsil edilir. Ruby'de stringler tek tırnak ( ') veya çift tırnak ( ") içinde yer alır. Ruby'de string kullanımını zaten detaylı bir şekilde ele almıştık, bu yüzden bu kısa bir bölüm olacak.

Aşağıdaki örnek, Ruby'de temel bir hello world programıdır:

Stringleri değişkenlerde de saklayabiliriz. Aşağıdaki örnek ayrıca string birleştirmeyi de içermektedir:

Data Types in Ruby 4

Adım 5 – Diziler

Dizi (array), aynı veri tipindeki öğelerden oluşan sabit boyutlu bir koleksiyonu saklayabilen bir veri yapısıdır. Aynı veri tipindeki değişkenlerin bir koleksiyonu olarak da düşünülebilir. Çoğu modern programlama dilindeki en temel veri yapılarından biridir.

Ruby'de bir dizi şu şekilde tanımlanır:

Şimdiye kadar tartıştığımız diğer tüm veri tiplerinden (integer, float ve string) bir dizi oluşturmak mümkündür. İşte bazı örnekler:

  • Integer: [-5, 0, 5]

  • Float: [-9.99, -6.99, -3.99, 0, 3.99]

  • String: [“the”, “quick”, “brown”, “fox”]

Aşağıdaki örnek tüm bu dizi türlerini uygulamaktadır:

Data Types in Ruby 5

print fonksiyonu bir diziyle karşılaştığında, tüm diziyi ekrana yazdırdığına dikkat edin. Daha fazla kolaylık sağlamak için, dizilerle genellikle değişken olarak karşılaşırsınız. Kodu güncelleyelim:

Data Types in Ruby 6

Data Types in Ruby 7

Şimdi, dizilerin bireysel öğeleriyle çalışabiliriz:

Data Types in Ruby 7

Ruby'de dizilerin indeks değerinin 0 ile başladığını unutmayın.

Kolaylık sağlamak amacıyla, Ruby'deki diziler, ilk ve son öğeleri yazdıran .first ve .last metotlarıyla birlikte gelir:

Data Types in Ruby 8

Ruby'de dizilerin ilginç bir özelliği daha vardır. Aynı anda farklı veri türlerini barındırabilirler. Örneğin, stringleri, sembolleri ve hatta diğer dizileri saklayabilirsiniz:

Data Types in Ruby 9

Step 6 – Symbols

In Ruby, a symbol, bir etiket veya tanımlayıcı gibi davranan özel bir veri türüdür. Semboller değiştirilemez (immutable), yani değiştirilemezler. Semboller, herhangi bir değer atamadan değişken tanımlıyormuş gibi görünürler.

Here’s an example of a symbol:

Genellikle semboller önemli bir şeyi tanımlamak için kullanılır. Ancak diğer durumlar için dizeler fazlasıyla yeterlidir.

Nesne yönelimli bir dil olan Ruby, dizeler aynı olsa bile her şeye benzersiz bellek konumuna sahip bir nesne olarak davranır (dizeler dahil). Ancak, bir sembole başvurduğunuzda, programın her yerinde aynı nesnedir, yani aynı bellek konumudur.

Step 7 – Hashes

Bir hash, anahtar ve değerlerden oluşan sözlük benzeri bir koleksiyondur. Çoğu zaman hash'ler, örneğin bir kullanıcı hakkındaki bilgiler gibi ilgili verileri depolamak için kullanılır.

İşte bir hash için hızlı bir örnek. Bir kullanıcının kullanıcı adını ve şifresini içeren bir user_info hash'i oluşturduk:

Data Types in Ruby hashing in ruby

Bir anahtar-değer çiftinin değerlerini almak için anahtarı kullanmamız gerekir. Aşağıdaki örnek bu süreci göstermektedir:

Data Types in Ruby retrieve value using key

Ruby ayrıca biraz farklı sözdizimleri kullanarak bir hash tanımlamaya da izin verir ( : yerine =>):

Data Types in Ruby retrieving value using key

Bu sözdizimi yapısı, diğer dillerde kullanılan sözdizimine benzer, örneğin, JavaScript. Bu sözdizimi yapısında anahtarlar sembol olarak tanımlanır. Bu yüzden değere erişmek için "username" yerine şunu kullanıyoruz: username kullanıyoruz.

Dinamik Türleme

Bir değişken tanımlarken açıkça bir veri türü atamak zorunda olmadığımızı zaten fark etmiş olabilirsiniz. Bunun yerine, değişkenin değeri veri türünü belirler. Ruby, tür denetiminin çalışma zamanında gerçekleştirildiği dinamik türleme kullanır. Buna karşılık, statik türleme programlama dillerinde (örneğin C/C++) veri türleri derleme sırasında belirlenir.

Aşağıdaki örnekte, dyn_var değişkenine atanan tüm değerler geçerlidir:

Dinamik türlemeli dillerde, farklı veri türlerini depolamak için mevcut bir değişkeni yeniden kullanmakta özgürüz. Burada, bu durumu göstermek için önceki örnek güncellenmiştir:

dynamically typed variables

Bu örneğin gösterdiği gibi, her yeni değer atandığında, dyn_var değişkeninin veri türünü anında değiştirir. Bir veri türünü diğerine dönüştürürken kullanışlıdır. Aşağıdaki örnek bunu göstermektedir:

get input and cast

Burada,

  • Klavye girişleri dize (string) olduğundan, length başlangıçta bir dizedir.

  • İstediğimiz değer bir ondalıklı sayı (float) olduğundan, dize değerini to_f yöntemini kullanarak ondalıklı sayıya dönüştürüyoruz.

  • Değer değişikliği nedeniyle, length değişkenine float veri türü atanır. Değerini ekrana yazdırdığımızda gördüğümüz şey budur.

İki farklı veri türünü birbirine karıştırmaya çalışırsak ne olur? Ruby bir hata verecektir. Bir göz atın:

mixing two datatypes

Veri Türü Tanımlama

Ruby'de her şey bir nesne olarak ele alınır. Ruby'deki her nesne class metodu ile birlikte gelir. Çağrıldığında, bu metot kaynağın hangi veri türünde olduğunu söyler. İşte class metodunu kullanmaya yönelik bazı örnekler:

get classes name

Veri türünü belirlemenin bir başka yolu da kind_of? metodunu kullanmaktır. Bu metot, nesnenin veri türünü sorgulanan veri türüyle karşılaştırır ve bir Boolean değer döndürür. Aşağıdaki örnekte buna göz atın:

check datatype

Benzer şekilde, başka bir is_a? metodu daha vardır; bu metot veri türünü karşılaştırır ve bir Boolean değer döndürür. Tek fark metodun etiketidir. Ancak, geliştiricilerin okuması ve anlamlandırması biraz daha kolay olduğu için bu tercih edilebilir. Önceki örneği ile güncelleyin:is_a?:

check datatype

Son Düşünceler

Herhangi bir programlama diliyle çalışmak, o dilin desteklediği veri türlerini iyi anlamayı gerektirir. Bu kılavuzda, Ruby programlamasında kullanılan en yaygın veri türlerini inceledik. Tam sayıları (integer), ondalıklı sayıları (float), dizeleri (string), sembolleri (symbol), Boolean'ları ve hash'leri (örneklerle) ele aldık ve gösterdik.

Ruby'yi keşfetmenize yardımcı olacak blogumuzdaki diğer eğitimlere göz atın:

Keyifli Kodlamalar!

author

Preslav Dobrev

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.