{"id":33052,"date":"2025-10-29T01:40:52","date_gmt":"2025-10-28T22:40:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33052"},"modified":"2025-10-29T01:40:52","modified_gmt":"2025-10-28T22:40:52","slug":"rubyde-dizilerle-calismak-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/","title":{"rendered":"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Programlaman\u0131n temel yap\u0131 ta\u015flar\u0131ndan biri olan diziler (arrays), ayn\u0131 veya farkl\u0131 veri tiplerindeki elemanlar\u0131 s\u0131ral\u0131 bir \u015fekilde depolayan koleksiyonlard\u0131r. Ruby, esnek ve g\u00fc\u00e7l\u00fc dizi manip\u00fclasyon yetenekleriyle geli\u015ftiricilere zengin bir ara\u00e7 seti sunar. Bu makale, Ruby&#8217;deki dizilerin temellerinden ba\u015flayarak ileri seviye kullan\u0131mlar\u0131na, performans ipu\u00e7lar\u0131na ve en iyi uygulamalara kadar geni\u015f bir yelpazeyi kapsayacak ve Ruby ile dizilerle nas\u0131l etkili bir \u015fekilde \u00e7al\u0131\u015f\u0131laca\u011f\u0131n\u0131 detayland\u0131racakt\u0131r. \u0130ster yeni ba\u015flayan bir Ruby geli\u015ftiricisi olun, ister deneyimli bir uzman, bu rehber diziler hakk\u0131ndaki bilginizi peki\u015ftirmek ve pratik becerilerinizi geli\u015ftirmek i\u00e7in de\u011ferli bilgiler sunacakt\u0131r.<\/p>\n<h3>Dizilerin Temelleri<\/h3>\n<p>Ruby&#8217;de diziler, <code>Array<\/code> s\u0131n\u0131f\u0131n\u0131n \u00f6rnekleridir ve olduk\u00e7a esnek yap\u0131dad\u0131rlar. Farkl\u0131 veri tiplerini (say\u0131lar, metinler, objeler, hatta ba\u015fka diziler) ayn\u0131 dizide bar\u0131nd\u0131rabilirler. Diziler, s\u0131f\u0131r tabanl\u0131 indeksleme kullan\u0131r, yani ilk eleman\u0131n indeksi 0&#8217;d\u0131r.<\/p>\n<h4>Dizi Olu\u015fturma<\/h4>\n<p>Ruby&#8217;de dizi olu\u015fturman\u0131n birka\u00e7 yolu vard\u0131r:<\/p>\n<p>*   <strong>Bo\u015f bir dizi olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-ruby\">bos_dizi = []\n    # veya\n    bos_dizi_2 = Array.new<\/code><\/pre>\n<p>*   <strong>Elemanlarla birlikte dizi olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5]\n    isimler = [\"Ali\", \"Ay\u015fe\", \"Mehmet\"]\n    karisik_dizi = [1, \"Merhaba\", true, nil, 3.14]<\/code><\/pre>\n<p>*   <strong><code>Array.new<\/code> ile boyut ve ba\u015flang\u0131\u00e7 de\u011feri belirterek:<\/strong><\/p>\n<pre><code class=\"language-ruby\">on_elemanli_dizi = Array.new(10) # 10 adet nil i\u00e7eren dizi\n    sifirlar_dizisi = Array.new(5, 0) # [0, 0, 0, 0, 0]\n    blok_ile_dizi = Array.new(3) { |i| i * 2 } # [0, 2, 4]<\/code><\/pre>\n<p>*   <strong><code>%w<\/code> (word array) k\u0131sayolu ile string dizileri olu\u015fturma:<\/strong><br \/>\n    Bu y\u00f6ntem, \u00f6zellikle kelime listeleri i\u00e7in kullan\u0131\u015fl\u0131d\u0131r ve t\u0131rnak i\u015faretlerinden kurtar\u0131r.<\/p>\n<pre><code class=\"language-ruby\">meyveler = %w[elma armut muz \u00e7ilek] # [\"elma\", \"armut\", \"muz\", \"\u00e7ilek\"]<\/code><\/pre>\n<h4>Elemanlara Eri\u015fim<\/h4>\n<p>Dizi elemanlar\u0131na indeks numaralar\u0131 arac\u0131l\u0131\u011f\u0131yla eri\u015filir:<\/p>\n<p>*   <strong>\u0130ndeksleme (<code>[]<\/code>):<\/strong><\/p>\n<pre><code class=\"language-ruby\">dizi = [10, 20, 30, 40, 50]\n    puts dizi[0] # 10 (ilk eleman)\n    puts dizi[3] # 40\n    puts dizi[10] # nil (dizi d\u0131\u015f\u0131 indeks)<\/code><\/pre>\n<p>*   <strong>Negatif indeksleme:<\/strong> Dizinin sonundan ba\u015flayarak elemanlara eri\u015fmek i\u00e7in kullan\u0131l\u0131r. <code>-1<\/code> son eleman\u0131, <code>-2<\/code> sondan ikinci eleman\u0131 temsil eder.<\/p>\n<pre><code class=\"language-ruby\">puts dizi[-1] # 50 (son eleman)\n    puts dizi[-3] # 30<\/code><\/pre>\n<p>*   <strong><code>at()<\/code> metodu:<\/strong> <code>[]<\/code> operat\u00f6r\u00fcne benzer bir i\u015flev sunar.<\/p>\n<pre><code class=\"language-ruby\">puts dizi.at(0) # 10\n    puts dizi.at(-1) # 50<\/code><\/pre>\n<p>*   <strong><code>first<\/code> ve <code>last<\/code> metotlar\u0131:<\/strong> Dizinin ilk ve son elemanlar\u0131na do\u011frudan eri\u015fim sa\u011flar. Ayr\u0131ca bir arg\u00fcman alarak ilk\/son N eleman\u0131 d\u00f6nd\u00fcrebilirler.<\/p>\n<pre><code class=\"language-ruby\">puts dizi.first # 10\n    puts dizi.last # 50\n    puts dizi.first(2) # [10, 20]\n    puts dizi.last(3) # [30, 40, 50]<\/code><\/pre>\n<p>*   <strong><code>fetch()<\/code> metodu:<\/strong> Ge\u00e7ersiz bir indekse eri\u015fildi\u011finde hata f\u0131rlatma veya varsay\u0131lan bir de\u011fer d\u00f6nd\u00fcrme yetene\u011fi sunar.<\/p>\n<pre><code class=\"language-ruby\">puts dizi.fetch(2) # 30\n    # puts dizi.fetch(10) # IndexError: index 10 outside of array bounds\n    puts dizi.fetch(10, \"Yok\") # \"Yok\" (varsay\u0131lan de\u011fer)<\/code><\/pre>\n<h4>Eleman Ekleme ve \u00c7\u0131karma<\/h4>\n<p>Dizilere eleman eklemek ve \u00e7\u0131karmak i\u00e7in \u00e7e\u015fitli metotlar bulunur:<\/p>\n<p>*   <strong>Ekleme:<\/strong><br \/>\n    *   <code>push<\/code> veya <code><<<\/code> (sona ekleme):<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3]\n        dizi.push(4, 5) # [1, 2, 3, 4, 5]\n        dizi << 6 # [1, 2, 3, 4, 5, 6]<\/code><\/pre>\n<p>    *   <code>unshift<\/code> (ba\u015f\u0131na ekleme):<\/p>\n<pre><code class=\"language-ruby\">dizi.unshift(0) # [0, 1, 2, 3, 4, 5, 6]<\/code><\/pre>\n<p>    *   <code>insert<\/code> (belirli bir indekse ekleme):<\/p>\n<pre><code class=\"language-ruby\">dizi.insert(2, 99) # [0, 1, 99, 2, 3, 4, 5, 6]\n        dizi.insert(4, \"a\", \"b\") # [0, 1, 99, 2, \"a\", \"b\", 3, 4, 5, 6]<\/code><\/pre>\n<p>*   <strong>\u00c7\u0131karma:<\/strong><br \/>\n    *   <code>pop<\/code> (sondan \u00e7\u0131karma):<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3, 4, 5]\n        son_eleman = dizi.pop # 5 (dizi \u015fimdi [1, 2, 3, 4])\n        iki_eleman = dizi.pop(2) # [3, 4] (dizi \u015fimdi [1, 2])<\/code><\/pre>\n<p>    *   <code>shift<\/code> (ba\u015ftan \u00e7\u0131karma):<\/p>\n<pre><code class=\"language-ruby\">ilk_eleman = dizi.shift # 1 (dizi \u015fimdi [2])<\/code><\/pre>\n<p>    *   <code>delete_at<\/code> (belirli bir indeksteki eleman\u0131 \u00e7\u0131karma):<\/p>\n<pre><code class=\"language-ruby\">dizi = [10, 20, 30, 40]\n        silinen = dizi.delete_at(1) # 20 (dizi \u015fimdi [10, 30, 40])<\/code><\/pre>\n<p>    *   <code>delete<\/code> (belirli bir de\u011feri olan t\u00fcm elemanlar\u0131 \u00e7\u0131karma):<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3, 2, 4]\n        dizi.delete(2) # [1, 3, 4]<\/code><\/pre>\n<p>    *   <code>compact<\/code> (nil elemanlar\u0131 \u00e7\u0131karma):<\/p>\n<pre><code class=\"language-ruby\">dizi_nil = [1, nil, 2, nil, 3]\n        dizi_nil.compact # [1, 2, 3]<\/code><\/pre>\n<h4>Dizinin Boyutu ve Durumu<\/h4>\n<p>Dizinin boyutu, eleman say\u0131s\u0131 veya bo\u015f olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in metotlar:<\/p>\n<p>*   <code>length<\/code>, <code>size<\/code>, <code>count<\/code>: Dizideki eleman say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. <code>count<\/code> ayr\u0131ca bir blok veya arg\u00fcman alarak belirli ko\u015fullar\u0131 sa\u011flayan eleman say\u0131s\u0131n\u0131 da bulabilir.<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3, 4, 5]\n    puts dizi.length # 5\n    puts dizi.size # 5\n    puts dizi.count # 5\n    puts dizi.count(2) # 1 (2 say\u0131s\u0131n\u0131n ka\u00e7 tane oldu\u011funu sayar)\n    puts dizi.count { |x| x > 3 } # 2 (3'ten b\u00fcy\u00fck eleman say\u0131s\u0131)<\/code><\/pre>\n<p>*   <code>empty?<\/code>: Dizi bo\u015fsa <code>true<\/code>, de\u011filse <code>false<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">bos_dizi = []\n    dolu_dizi = [1, 2]\n    puts bos_dizi.empty? # true\n    puts dolu_dizi.empty? # false<\/code><\/pre>\n<h3>Diziler \u00dczerinde Yineleme (Iteration)<\/h3>\n<p>Ruby'nin en g\u00fc\u00e7l\u00fc yanlar\u0131ndan biri, diziler \u00fczerinde yineleme yapmak i\u00e7in sundu\u011fu zengin metot setidir. Bu metotlar, kodu daha okunabilir ve i\u015flevsel hale getirir.<\/p>\n<h4><code>each<\/code><\/h4>\n<p>Dizinin her eleman\u0131 \u00fczerinde bir i\u015flem yapmak i\u00e7in kullan\u0131l\u0131r. Orjinal diziyi de\u011fi\u015ftirmez ve kendisine \u00e7a\u011fr\u0131ld\u0131\u011f\u0131 diziyi d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5]\nsayilar.each do |sayi|\n  puts \"Say\u0131: #{sayi}\"\nend\n<h2>\u00c7\u0131kt\u0131:<\/h2>\n<h2>Say\u0131: 1<\/h2>\n<h2>Say\u0131: 2<\/h2>\n<h2>Say\u0131: 3<\/h2>\n<h2>Say\u0131: 4<\/h2>\n<h2>Say\u0131: 5<\/code><\/pre>\n<\/h2>\n<p>*   <strong><code>each_with_index<\/code>:<\/strong> Elemanlarla birlikte indekslerine de eri\u015fmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-ruby\">meyveler = [\"elma\", \"armut\", \"muz\"]\n    meyveler.each_with_index do |meyve, indeks|\n      puts \"#{indeks}. #{meyve}\"\n    end\n    # \u00c7\u0131kt\u0131:\n    # 0. elma\n    # 1. armut\n    # 2. muz<\/code><\/pre>\n<h4><code>map<\/code> \/ <code>collect<\/code><\/h4>\n<p>Dizinin her eleman\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcrerek yeni bir dizi olu\u015fturan metotlard\u0131r. Orijinal dizi de\u011fi\u015fmez. <code>map<\/code> ve <code>collect<\/code> ayn\u0131 i\u015flevi g\u00f6r\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4]\nkareler = sayilar.map { |sayi| sayi * sayi }\nputs kareler.inspect # [1, 4, 9, 16]\n\nisimler = [\"ali\", \"ay\u015fe\", \"mehmet\"]\nbuyuk_isimler = isimler.collect(&:upcase) # Sembol proc kullan\u0131m\u0131\nputs buyuk_isimler.inspect # [\"ALI\", \"AY\u015eE\", \"MEHMET\"]<\/code><\/pre>\n<h4><code>select<\/code> \/ <code>filter<\/code><\/h4>\n<p>Belirli bir ko\u015fulu sa\u011flayan elemanlar\u0131 i\u00e7eren yeni bir dizi olu\u015fturur. <code>select<\/code> ve <code>filter<\/code> ayn\u0131 i\u015flevi g\u00f6r\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\ncift_sayilar = sayilar.select { |sayi| sayi % 2 == 0 }\nputs cift_sayilar.inspect # [2, 4, 6, 8, 10]\n\nuzun_isimler = %w[ali ay\u015fe mehmet deniz]\nfiltreli_isimler = uzun_isimler.filter { |isim| isim.length > 4 }\nputs filtreli_isimler.inspect # [\"ay\u015fe\", \"mehmet\", \"deniz\"]<\/code><\/pre>\n<h4><code>reject<\/code><\/h4>\n<p>Belirli bir ko\u015fulu sa\u011flamayan elemanlar\u0131 i\u00e7eren yeni bir dizi olu\u015fturur. <code>select<\/code>'in tam tersidir.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\ntek_sayilar = sayilar.reject { |sayi| sayi % 2 == 0 }\nputs tek_sayilar.inspect # [1, 3, 5, 7, 9]<\/code><\/pre>\n<h4><code>find<\/code> \/ <code>detect<\/code><\/h4>\n<p>Belirli bir ko\u015fulu sa\u011flayan ilk eleman\u0131 d\u00f6nd\u00fcr\u00fcr. E\u011fer hi\u00e7bir eleman ko\u015fulu sa\u011flamazsa <code>nil<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5]\nilk_cift = sayilar.find { |sayi| sayi % 2 == 0 }\nputs ilk_cift # 2\n\nbuyuk_sayi = sayilar.detect { |sayi| sayi > 10 }\nputs buyuk_sayi.inspect # nil<\/code><\/pre>\n<h4><code>reduce<\/code> \/ <code>inject<\/code><\/h4>\n<p>Dizideki t\u00fcm elemanlar\u0131 birle\u015ftirerek tek bir de\u011fer elde etmek i\u00e7in kullan\u0131l\u0131r. Toplama, \u00e7arpma, string birle\u015ftirme gibi i\u015flemlerde \u00e7ok faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5]\ntoplam = sayilar.reduce(0) { |accumulator, current_value| accumulator + current_value }\nputs toplam # 15 (0 + 1 + 2 + 3 + 4 + 5)\n\n<h2>Ba\u015flang\u0131\u00e7 de\u011feri olmadan ilk eleman\u0131 accumulator olarak kullan\u0131r<\/h2>\ncarpim = sayilar.inject { |acc, val| acc * val }\nputs carpim # 120 (1 <em> 2 <\/em> 3 <em> 4 <\/em> 5)\n\nkelimeler = [\"Ruby\", \"\u00e7ok\", \"g\u00fc\u00e7l\u00fcd\u00fcr\"]\ncumle = kelimeler.reduce(\"\") { |acc, word| acc + word + \" \" }.strip\nputs cumle # \"Ruby \u00e7ok g\u00fc\u00e7l\u00fcd\u00fcr\"<\/code><\/pre>\n<h4><code>any?<\/code>, <code>all?<\/code>, <code>none?<\/code>, <code>one?<\/code><\/h4>\n<p>Dizideki elemanlar\u0131n belirli ko\u015fullar\u0131 sa\u011flay\u0131p sa\u011flamad\u0131\u011f\u0131n\u0131 kontrol eden sorgulama metotlar\u0131d\u0131r.<\/p>\n<p>*   <code>any?<\/code>: En az bir eleman ko\u015fulu sa\u011fl\u0131yorsa <code>true<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5]\n    puts sayilar.any? { |sayi| sayi > 4 } # true\n    puts sayilar.any? { |sayi| sayi > 10 } # false<\/code><\/pre>\n<p>*   <code>all?<\/code>: T\u00fcm elemanlar ko\u015fulu sa\u011fl\u0131yorsa <code>true<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">puts sayilar.all? { |sayi| sayi > 0 } # true\n    puts sayilar.all? { |sayi| sayi % 2 == 0 } # false<\/code><\/pre>\n<p>*   <code>none?<\/code>: Hi\u00e7bir eleman ko\u015fulu sa\u011flam\u0131yorsa <code>true<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">puts sayilar.none? { |sayi| sayi > 10 } # true\n    puts sayilar.none? { |sayi| sayi % 2 == 0 } # false<\/code><\/pre>\n<p>*   <code>one?<\/code>: Sadece bir eleman ko\u015fulu sa\u011fl\u0131yorsa <code>true<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">puts sayilar.one? { |sayi| sayi == 3 } # true\n    puts sayilar.one? { |sayi| sayi % 2 == 0 } # false (2 ve 4 var)<\/code><\/pre>\n<h3>Dizi Manip\u00fclasyonu ve D\u00f6n\u00fc\u015f\u00fcm\u00fc<\/h3>\n<p>Ruby dizileri, elemanlar\u0131n\u0131 yeniden d\u00fczenlemek, birle\u015ftirmek, b\u00f6lmek ve farkl\u0131 formatlara d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in zengin bir dizi metot seti sunar.<\/p>\n<h4>Birle\u015ftirme ve \u00c7\u0131karma<\/h4>\n<p>*   <strong><code>+<\/code> operat\u00f6r\u00fc:<\/strong> \u0130ki diziyi birle\u015ftirerek yeni bir dizi olu\u015fturur.<\/p>\n<pre><code class=\"language-ruby\">dizi1 = [1, 2]\n    dizi2 = [3, 4]\n    birlesik_dizi = dizi1 + dizi2 # [1, 2, 3, 4]<\/code><\/pre>\n<p>*   <strong><code>-<\/code> operat\u00f6r\u00fc:<\/strong> Bir diziden di\u011ferinde bulunan elemanlar\u0131 \u00e7\u0131kararak yeni bir dizi olu\u015fturur.<\/p>\n<pre><code class=\"language-ruby\">dizi_a = [1, 2, 3, 4, 5]\n    dizi_b = [2, 4]\n    fark_dizi = dizi_a - dizi_b # [1, 3, 5]<\/code><\/pre>\n<p>*   <strong><code>concat<\/code>:<\/strong> Bir dizinin sonuna ba\u015fka bir dizinin elemanlar\u0131n\u0131 ekler. Orijinal diziyi de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-ruby\">dizi1 = [1, 2]\n    dizi2 = [3, 4]\n    dizi1.concat(dizi2) # dizi1 \u015fimdi [1, 2, 3, 4]<\/code><\/pre>\n<h4>\u00c7arpma<\/h4>\n<p><em>   <strong><code><\/em><\/code> operat\u00f6r\u00fc:<\/strong> \u0130ki farkl\u0131 \u015fekilde kullan\u0131labilir:<br \/>\n    *   Bir tamsay\u0131 ile \u00e7arp\u0131ld\u0131\u011f\u0131nda, diziyi o kadar kez tekrarlayan yeni bir dizi olu\u015fturur.<br \/>\n    *   Bir string ile \u00e7arp\u0131ld\u0131\u011f\u0131nda, dizinin elemanlar\u0131n\u0131 o string ile birle\u015ftirir.<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2]\n    tekrarlanan_dizi = dizi * 3 # [1, 2, 1, 2, 1, 2]\n\n    kelimeler = [\"elma\", \"armut\", \"muz\"]\n    birlesik_string = kelimeler * \", \" # \"elma, armut, muz\" (join metoduna benzer)<\/code><\/pre>\n<h4>S\u0131ralama<\/h4>\n<p>*   <strong><code>sort<\/code>:<\/strong> Diziyi do\u011fal s\u0131ras\u0131na g\u00f6re s\u0131ralayarak yeni bir dizi d\u00f6nd\u00fcr\u00fcr. Orijinal diziyi de\u011fi\u015ftirmez.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [3, 1, 4, 1, 5, 9, 2]\n    sirali_sayilar = sayilar.sort # [1, 1, 2, 3, 4, 5, 9]\n\n    isimler = [\"Ay\u015fe\", \"Ali\", \"Zeynep\"]\n    sirali_isimler = isimler.sort # [\"Ali\", \"Ay\u015fe\", \"Zeynep\"]<\/code><\/pre>\n<p>*   <strong><code>sort!<\/code>:<\/strong> Diziyi yerinde (in-place) s\u0131ralar.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [3, 1, 4]\n    sayilar.sort! # sayilar \u015fimdi [1, 3, 4]<\/code><\/pre>\n<p>*   <strong><code>sort_by<\/code>:<\/strong> Belirli bir kritere g\u00f6re s\u0131ralama yapmak i\u00e7in blok al\u0131r.<\/p>\n<pre><code class=\"language-ruby\">kisiler = [{ad: \"Ali\", yas: 30}, {ad: \"Ay\u015fe\", yas: 25}, {ad: \"Mehmet\", yas: 35}]\n    yasa_gore_sirali = kisiler.sort_by { |kisi| kisi[:yas] }\n    # [{ad: \"Ay\u015fe\", yas: 25}, {ad: \"Ali\", yas: 30}, {ad: \"Mehmet\", yas: 35}]<\/code><\/pre>\n<p>*   <strong><code>reverse<\/code> \/ <code>reverse!<\/code>:<\/strong> Diziyi tersine \u00e7evirir. <code>reverse<\/code> yeni bir dizi d\u00f6nd\u00fcr\u00fcrken, <code>reverse!<\/code> orijinal diziyi de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3]\n    ters_dizi = dizi.reverse # [3, 2, 1]\n    dizi.reverse! # dizi \u015fimdi [3, 2, 1]<\/code><\/pre>\n<h4>Benzersiz Elemanlar<\/h4>\n<p>*   <strong><code>uniq<\/code> \/ <code>uniq!<\/code>:<\/strong> Dizideki yinelenen elemanlar\u0131 kald\u0131rarak benzersiz elemanlardan olu\u015fan yeni bir dizi d\u00f6nd\u00fcr\u00fcr. <code>uniq!<\/code> orijinal diziyi de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 2, 3, 1, 4]\n    benzersiz_sayilar = sayilar.uniq # [1, 2, 3, 4]<\/code><\/pre>\n<h4>D\u00fczle\u015ftirme (Flattening)<\/h4>\n<p>*   <strong><code>flatten<\/code> \/ <code>flatten!<\/code>:<\/strong> \u0130\u00e7 i\u00e7e dizileri tek bir d\u00fcz diziye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. <code>flatten!<\/code> orijinal diziyi de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-ruby\">ic_ice_dizi = [1, [2, 3], [4, [5, 6]]]\n    duz_dizi = ic_ice_dizi.flatten # [1, 2, 3, 4, 5, 6]<\/code><\/pre>\n<p>    Bir arg\u00fcman alarak belirli bir seviyeye kadar d\u00fczle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-ruby\">duz_dizi_bir_seviye = ic_ice_dizi.flatten(1) # [1, 2, 3, 4, [5, 6]]<\/code><\/pre>\n<h4>Dilimleme (Slicing)<\/h4>\n<p>Dizinin bir b\u00f6l\u00fcm\u00fcn\u00fc (bir alt diziyi) almak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>*   <strong><code>[]<\/code> operat\u00f6r\u00fc ile aral\u0131k belirtme:<\/strong> Ba\u015flang\u0131\u00e7 indeksi ve uzunluk veya bir aral\u0131k (<code>..<\/code> veya <code>...<\/code>) ile.<\/p>\n<pre><code class=\"language-ruby\">dizi = [10, 20, 30, 40, 50]\n    puts dizi[1, 3].inspect # [20, 30, 40] (1. indeksten ba\u015flayarak 3 eleman)\n    puts dizi[0..2].inspect # [10, 20, 30] (0'dan 2'ye kadar, 2 dahil)\n    puts dizi[0...2].inspect # [10, 20] (0'dan 2'ye kadar, 2 hari\u00e7)<\/code><\/pre>\n<p>*   <strong><code>slice<\/code>:<\/strong> <code>[]<\/code> operat\u00f6r\u00fc ile ayn\u0131 i\u015flevi g\u00f6r\u00fcr.<\/p>\n<pre><code class=\"language-ruby\">puts dizi.slice(1, 2).inspect # [20, 30]<\/code><\/pre>\n<h4>Di\u011fer Faydal\u0131 Metotlar<\/h4>\n<p>*   <strong><code>join<\/code>:<\/strong> Dizinin elemanlar\u0131n\u0131 belirli bir ay\u0131r\u0131c\u0131 ile birle\u015ftirerek bir string olu\u015fturur.<\/p>\n<pre><code class=\"language-ruby\">kelimeler = [\"Ruby\", \"dizileri\", \"harika!\"]\n    cumle = kelimeler.join(\" \") # \"Ruby dizileri harika!\"<\/code><\/pre>\n<p>*   <strong><code>zip<\/code>:<\/strong> Bir diziyi, di\u011fer dizilerin ayn\u0131 indeksteki elemanlar\u0131yla birle\u015ftirerek yeni dizilerden olu\u015fan bir dizi olu\u015fturur.<\/p>\n<pre><code class=\"language-ruby\">dizi_a = [1, 2, 3]\n    dizi_b = [:a, :b, :c]\n    dizi_c = [\"x\", \"y\", \"z\"]\n    birlesik = dizi_a.zip(dizi_b, dizi_c)\n    # [[1, :a, \"x\"], [2, :b, \"y\"], [3, :c, \"z\"]]<\/code><\/pre>\n<p>*   <strong><code>product<\/code>:<\/strong> \u0130ki veya daha fazla dizinin Kartezyen \u00e7arp\u0131m\u0131n\u0131 hesaplar.<\/p>\n<pre><code class=\"language-ruby\">renkler = [\"k\u0131rm\u0131z\u0131\", \"mavi\"]\n    bedenler = [\"S\", \"M\", \"L\"]\n    kombinasyonlar = renkler.product(bedenler)\n    # [[\"k\u0131rm\u0131z\u0131\", \"S\"], [\"k\u0131rm\u0131z\u0131\", \"M\"], [\"k\u0131rm\u0131z\u0131\", \"L\"],\n    #  [\"mavi\", \"S\"], [\"mavi\", \"M\"], [\"mavi\", \"L\"]]<\/code><\/pre>\n<p>*   <strong><code>sample<\/code>:<\/strong> Diziden rastgele bir veya N adet eleman se\u00e7er.<\/p>\n<pre><code class=\"language-ruby\">dizi = [1, 2, 3, 4, 5]\n    rastgele_eleman = dizi.sample # Rastgele bir eleman\n    rastgele_iki_eleman = dizi.sample(2) # Rastgele iki eleman<\/code><\/pre>\n<h3>\u0130\u00e7 \u0130\u00e7e Diziler (\u00c7ok Boyutlu Diziler)<\/h3>\n<p>Ruby'de i\u00e7 i\u00e7e diziler, bir dizinin elemanlar\u0131n\u0131n ba\u015fka diziler olmas\u0131 durumudur. Bu yap\u0131, matrisler veya tablolardaki verileri temsil etmek i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-ruby\">matris = [\n  [1, 2, 3],\n  [4, 5, 6],\n  [7, 8, 9]\n]<\/code><\/pre>\n<p>*   <strong>Elemanlara Eri\u015fim:<\/strong> \u0130ki indeks kullanarak eri\u015filir: ilki d\u0131\u015f dizideki sat\u0131r indeksi, ikincisi ise i\u00e7 dizideki s\u00fctun indeksi.<\/p>\n<pre><code class=\"language-ruby\">puts matris[0][0] # 1\n    puts matris[1][2] # 6<\/code><\/pre>\n<p>*   <strong>\u0130\u00e7 i\u00e7e diziler \u00fczerinde yineleme:<\/strong><\/p>\n<pre><code class=\"language-ruby\">matris.each do |satir|\n      satir.each do |eleman|\n        print \"#{eleman} \"\n      end\n      puts # Her sat\u0131r sonunda yeni sat\u0131ra ge\u00e7\n    end\n    # \u00c7\u0131kt\u0131:\n    # 1 2 3\n    # 4 5 6\n    # 7 8 9<\/code><\/pre>\n<p>\u0130\u00e7 i\u00e7e diziler, karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 d\u00fczenli bir \u015fekilde tutmak i\u00e7in g\u00fc\u00e7l\u00fc bir mekanizma sunar.<\/p>\n<h3>Performans \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Ruby'nin esnekli\u011fi bazen performans maliyetleriyle gelebilir. Dizilerle \u00e7al\u0131\u015f\u0131rken verimlili\u011fi art\u0131rmak ve kodu daha iyi hale getirmek i\u00e7in baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>Do\u011fru Metodu Se\u00e7in:<\/strong> Her g\u00f6rev i\u00e7in en uygun metodu kullanmak performans\u0131 art\u0131r\u0131r. \u00d6rne\u011fin, bir eleman\u0131 d\u00f6n\u00fc\u015ft\u00fcr\u00fcp yeni bir dizi olu\u015fturacaksan\u0131z <code>map<\/code> kullan\u0131n. Sadece yan etki i\u00e7in (ekrana yazd\u0131rma gibi) yineleyecekseniz <code>each<\/code> kullan\u0131n. Ko\u015fullu se\u00e7imler i\u00e7in <code>select<\/code> veya <code>reject<\/code> tercih edin.<br \/>\n*   <strong>Zincirleme Metotlar (Method Chaining):<\/strong> Ruby'nin Enumerable mod\u00fcl\u00fc sayesinde bir\u00e7ok dizi metodu zincirleme olarak kullan\u0131labilir. Bu, kodu daha okunabilir ve ak\u0131c\u0131 hale getirir. Ancak, her ad\u0131mda yeni bir dizi olu\u015fturulabilece\u011fi i\u00e7in b\u00fcy\u00fck dizilerde dikkatli olunmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-ruby\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n    sonuc = sayilar.select(&:even?).map { |n| n * 10 }.sum\n    # \u00d6nce \u00e7ift say\u0131lar\u0131 se\u00e7, sonra her birini 10 ile \u00e7arp, sonra topla.<\/code><\/pre>\n<p>*   <strong>B\u00fcy\u00fck Dizilerle \u00c7al\u0131\u015f\u0131rken Dikkatli Olun:<\/strong> \u00d6zellikle <code>map<\/code>, <code>select<\/code> gibi yeni diziler d\u00f6nd\u00fcren metotlar, b\u00fcy\u00fck dizilerle \u00e7al\u0131\u015f\u0131rken bellek t\u00fcketimini art\u0131rabilir. E\u011fer sadece bir kez yineleme yap\u0131p b\u00fcy\u00fck bir ara dizi olu\u015fturmaktan ka\u00e7\u0131nmak istiyorsan\u0131z, <code>Enumerator<\/code> ve <code>lazy<\/code> metodu faydal\u0131 olabilir.<\/p>\n<pre><code class=\"language-ruby\">(1..Float::INFINITY).lazy.select(&:even?).map { |n| n * 10 }.first(5).to_a\n    # Sonsuz bir aral\u0131k \u00fczerinde tembel (lazy) hesaplama yaparak ilk 5 eleman\u0131 bulur.\n    # T\u00fcm aral\u0131\u011f\u0131 belle\u011fe y\u00fcklemez.<\/code><\/pre>\n<p>*   <strong>Yerinde De\u011fi\u015fiklikler (<code>!<\/code>) ve Yan Etkiler:<\/strong> <code>sort!<\/code>, <code>reverse!<\/code>, <code>uniq!<\/code> gibi sonu <code>!<\/code> ile biten metotlar, orijinal diziyi yerinde de\u011fi\u015ftirir. Bu, bellek a\u00e7\u0131s\u0131ndan daha verimli olabilir ancak beklenmedik yan etkilere neden olabilece\u011fi i\u00e7in dikkatli kullan\u0131lmal\u0131d\u0131r, \u00f6zellikle ayn\u0131 diziye birden fazla referans varsa.<br \/>\n*   <strong>\u0130ndeks Eri\u015fimi vs. Yineleme:<\/strong> Belirli bir indekse h\u0131zl\u0131 eri\u015fim gerekti\u011finde <code>[]<\/code> veya <code>at()<\/code> kullan\u0131n. Ancak, t\u00fcm elemanlar \u00fczerinde i\u015flem yapman\u0131z gerekiyorsa yineleme metotlar\u0131 (<code>each<\/code>, <code>map<\/code> vb.) genellikle daha okunabilir ve idiomatiktir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Ruby'deki diziler, programlama d\u00fcnyas\u0131nda veri depolama ve i\u015fleme i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu makalede, dizilerin nas\u0131l olu\u015fturuldu\u011fundan, elemanlar\u0131na nas\u0131l eri\u015fildi\u011finden, eklendi\u011finden ve \u00e7\u0131kar\u0131ld\u0131\u011f\u0131ndan bahsettik. Ayr\u0131ca, <code>each<\/code>, <code>map<\/code>, <code>select<\/code>, <code>reduce<\/code> gibi g\u00fc\u00e7l\u00fc yineleme metotlar\u0131 ile diziler \u00fczerinde nas\u0131l d\u00f6n\u00fc\u015f\u00fcmler yap\u0131labilece\u011fini detayland\u0131rd\u0131k. <code>sort<\/code>, <code>uniq<\/code>, <code>flatten<\/code>, <code>join<\/code> gibi manip\u00fclasyon metotlar\u0131 ve i\u00e7 i\u00e7e dizilerin kullan\u0131m\u0131 da ele al\u0131nd\u0131. Son olarak, performans ipu\u00e7lar\u0131 ve en iyi uygulamalarla Ruby'de dizilerle daha verimli \u00e7al\u0131\u015fman\u0131n yollar\u0131n\u0131 g\u00f6sterdik.<\/p>\n<p>Ruby'nin zengin <code>Array<\/code> ve <code>Enumerable<\/code> metotlar\u0131, karma\u015f\u0131k veri i\u015fleme g\u00f6revlerini k\u0131sa, okunabilir ve etkili kodlarla \u00e7\u00f6zmenizi sa\u011flar. Bu metotlar\u0131 ustaca kullanmak, Ruby programlama yeteneklerinizi \u00f6nemli \u00f6l\u00e7\u00fcde geli\u015ftirecek ve daha temiz, daha s\u00fcrd\u00fcr\u00fclebilir uygulamalar yazman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Dizilerle \u00e7al\u0131\u015f\u0131rken denemekten ve farkl\u0131 metot kombinasyonlar\u0131n\u0131 ke\u015ffetmekten \u00e7ekinmeyin; Ruby'nin g\u00fcc\u00fc, size sundu\u011fu bu esneklikte yatmaktad\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\nProgramlaman\u0131n temel yap\u0131 ta\u015flar\u0131ndan biri olan diziler (arrays), ayn\u0131 veya farkl\u0131 veri tip","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-33052","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ruby&#039;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ruby&#039;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Ruby&#039;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber Programlaman\u0131n temel yap\u0131 ta\u015flar\u0131ndan biri olan diziler (arrays), ayn\u0131 veya farkl\u0131 veri tip\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-28T22:40:52+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-10-28T22:40:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\"},\"wordCount\":1534,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\",\"name\":\"Ruby'de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-28T22:40:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ruby'de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ruby'de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber","og_description":"Ruby'de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber Programlaman\u0131n temel yap\u0131 ta\u015flar\u0131ndan biri olan diziler (arrays), ayn\u0131 veya farkl\u0131 veri tip","og_url":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-28T22:40:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber","datePublished":"2025-10-28T22:40:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/"},"wordCount":1534,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/","name":"Ruby'de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-28T22:40:52+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rubyde-dizilerle-calismak-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ruby&#8217;de Dizilerle \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33052"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33052\/revisions"}],"predecessor-version":[{"id":33053,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33052\/revisions\/33053"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}