[{"data":1,"prerenderedAt":1023},["ShallowReactive",2],{"post-\u002Ftr\u002Fgo-veri-tipleri-map":3},{"page":4,"translation":867,"nav":883,"related":1006,"random":1014},{"id":5,"title":6,"body":7,"categories":865,"category":867,"date":868,"description":869,"draft":870,"extension":871,"image":872,"kind":867,"lang":89,"meta":873,"navigation":281,"path":874,"readingTime":294,"seo":875,"slug":876,"stem":877,"tags":878,"translationKey":876,"type":866,"updated":881,"__hash__":882},"postsTr\u002Ftr\u002Fgo-veri-tipleri-map.md","Go Veri Tipleri - Map",{"type":8,"value":9,"toc":854},"minimark",[10,60,68,71,74,77,82,175,177,182,185,187,191,194,205,228,231,258,260,264,267,327,338,385,395,403,409,411,415,426,474,487,533,540,546,548,552,559,640,643,649,651,655,662,712,723,743,745,749,755,810,813,823,829,837,842,850],[11,12,13,21],"blockquote",{},[14,15,16,17],"p",{},"💡 ",[18,19,20],"strong",{},"Özet (TL;DR):",[22,23,24,31,50],"ul",{},[25,26,27,30],"li",{},[18,28,29],{},"Go Map Nedir?:"," Anahtar-değer (key-value) çiftlerini saklayan, diğer dillerdeki hash-table veya associative array yapılarına benzeyen yerleşik bir veri tipidir.",[25,32,33,36,37,41,42,45,46,49],{},[18,34,35],{},"Kritik Kural:"," Tanımlanan bir map kullanılmadan önce mutlaka ",[38,39,40],"code",{},"make()"," fonksiyonu veya map literal'i ile başlatılmalıdır (initialize). Aksi halde ",[18,43,44],{},"nil map"," hatası (",[38,47,48],{},"panic: assignment to entry in nil map",") alınır.",[25,51,52,55,56,59],{},[18,53,54],{},"Sorgulama Güvenliği:"," Olmayan bir anahtar sorgulandığında hata oluşmaz; ilgili veri tipinin varsayılan değeri (sıfır değeri) döner. Anahtarın varlığı ",[38,57,58],{},"value, ok := m[key]"," yapısıyla kontrol edilir.",[14,61,62,67],{},[63,64,66],"a",{"href":65},"\u002Ftr\u002Fgo-slice-veri-tipi","Bir önceki yazıda Go'da Slice'ları incelemiştik",". Bu yazıda benzer ama biraz daha gelişmiş bir seçenek olan Go Map'lerini inceleyeceğiz.",[14,69,70],{},"Go Map'leri, bazı programlama dillerinde bulunan hash-table kavramına denk bir veri tipidir. Array ve Slice'lardan en büyük farkları ise indeks anahtarı olarak herhangi bir veri tipini kullanmaya olanak vermeleridir.",[14,72,73],{},"Her ne kadar Go, anahtar olarak kullanılabilecek veri tipi için bir sınırlama getirmese de, Go derleyicisinin anahtarları birbirinden ayırabilmesi için kullanılacak anahtarın karşılaştırılabilir (comparable) olması gerekir.",[75,76],"hr",{},[78,79,81],"h3",{"id":80},"go-map-i̇şlemleri-ve-hata-durumları","Go Map İşlemleri ve Hata Durumları",[83,84,85,102],"table",{},[86,87,88],"thead",{},[89,90,91,96,99],"tr",{},[92,93,95],"th",{"align":94},"left","İşlem",[92,97,98],{"align":94},"Nil Map (Başlatılmamış)",[92,100,101],{"align":94},"Initialized Map (Başlatılmış)",[103,104,105,123,143,159],"tbody",{},[89,106,107,113,116],{},[108,109,110],"td",{"align":94},[18,111,112],{},"Eleman Sorgulama",[108,114,115],{"align":94},"Varsayılan değer döner (Hata vermez)",[108,117,118,119,122],{"align":94},"Değer döner (Yoksa varsayılan değer ve ",[38,120,121],{},"ok=false",")",[89,124,125,130,140],{},[108,126,127],{"align":94},[18,128,129],{},"Eleman Ekleme \u002F Güncelleme",[108,131,132,133,136,137,122],{"align":94},"❌ ",[18,134,135],{},"Panik Üretir"," (",[38,138,139],{},"assignment to entry in nil map",[108,141,142],{"align":94},"✅ Başarıyla eklenir \u002F güncellenir",[89,144,145,153,156],{},[108,146,147],{"align":94},[18,148,149,150,122],{},"Eleman Silme (",[38,151,152],{},"delete",[108,154,155],{"align":94},"Hata vermez (Sessizce çalışır)",[108,157,158],{"align":94},"Elemanı siler (Yoksa hata vermez)",[89,160,161,169,172],{},[108,162,163],{"align":94},[18,164,165,166,122],{},"Döngü (",[38,167,168],{},"range",[108,170,171],{"align":94},"Hata vermez (Hiç çalışmaz)",[108,173,174],{"align":94},"Elemanları sırasız (rastgele) döner",[75,176],{},[178,179,181],"h2",{"id":180},"go-map-veri-tipi-nerede-ve-ne-zaman-kullanılmalı","Go Map Veri Tipi Nerede ve Ne Zaman Kullanılmalı?",[14,183,184],{},"Map tipi slice ve array'e göre çok daha kullanışlı olsa da kaynak açısından biraz daha masraflıdır. Ancak ileri seviyede optimize bir kod oluşturmaya çalışmıyorsanız bu fark görmezden gelinebilecek düzeydedir. Slice ile çözülebilecek basit durumlarda gereksiz yere map kullanmamalıyız; fakat map'in gerek işlev gerekse anlaşılırlık bakımından işimizi kolaylaştırdığı yerlerde tereddüt etmeden kullanabiliriz.",[75,186],{},[178,188,190],{"id":189},"goda-map-tanımlama","Go'da Map Tanımlama",[14,192,193],{},"Diğer veri tiplerinde olduğu gibi map veri tipinde bir değişken oluşturmak için de birkaç farklı yöntem kullanabiliriz.",[14,195,196,197,200,201,204],{},"Örneğin, anahtarları ",[38,198,199],{},"string",", sakladığı değerler ",[38,202,203],{},"int"," olan bir map tanımlamak için aşağıdaki kodu yazabiliriz:",[206,207,212],"pre",{"className":208,"code":209,"language":210,"meta":211,"style":211},"language-go shiki shiki-themes github-light github-dark","var studentsAge map[string]int\nstudentsAge = make(map[string]int)\n","go","",[38,213,214,222],{"__ignoreMap":211},[215,216,219],"span",{"class":217,"line":218},"line",1,[215,220,221],{},"var studentsAge map[string]int\n",[215,223,225],{"class":217,"line":224},2,[215,226,227],{},"studentsAge = make(map[string]int)\n",[14,229,230],{},"Dilerseniz başlangıç değerlerini atayarak da bir map oluşturabilirsiniz:",[206,232,234],{"className":208,"code":233,"language":210,"meta":211,"style":211},"studentsAge := map[string]int{\n    \"john\": 32,\n    \"bob\":  31,\n}\n",[38,235,236,241,246,252],{"__ignoreMap":211},[215,237,238],{"class":217,"line":218},[215,239,240],{},"studentsAge := map[string]int{\n",[215,242,243],{"class":217,"line":224},[215,244,245],{},"    \"john\": 32,\n",[215,247,249],{"class":217,"line":248},3,[215,250,251],{},"    \"bob\":  31,\n",[215,253,255],{"class":217,"line":254},4,[215,256,257],{},"}\n",[75,259],{},[178,261,263],{"id":262},"go-maplerine-eleman-ekleme","Go Maplerine Eleman Ekleme",[14,265,266],{},"Slice'tan farklı olarak Map'lere eleman eklemek için özel bir fonksiyona ihtiyaç duymayız. Kullanım yöntemimiz daha çok JavaScript ya da PHP'deki \"associative array\" mantığına benzer.",[206,268,270],{"className":208,"code":269,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"john\"] = 32\n    studentsAge[\"bob\"] = 31\n    fmt.Println(studentsAge)\n}\n",[38,271,272,277,283,288,292,298,304,310,316,322],{"__ignoreMap":211},[215,273,274],{"class":217,"line":218},[215,275,276],{},"package main\n",[215,278,279],{"class":217,"line":224},[215,280,282],{"emptyLinePlaceholder":281},true,"\n",[215,284,285],{"class":217,"line":248},[215,286,287],{},"import \"fmt\"\n",[215,289,290],{"class":217,"line":254},[215,291,282],{"emptyLinePlaceholder":281},[215,293,295],{"class":217,"line":294},5,[215,296,297],{},"func main() {\n",[215,299,301],{"class":217,"line":300},6,[215,302,303],{},"    studentsAge := make(map[string]int)\n",[215,305,307],{"class":217,"line":306},7,[215,308,309],{},"    studentsAge[\"john\"] = 32\n",[215,311,313],{"class":217,"line":312},8,[215,314,315],{},"    studentsAge[\"bob\"] = 31\n",[215,317,319],{"class":217,"line":318},9,[215,320,321],{},"    fmt.Println(studentsAge)\n",[215,323,325],{"class":217,"line":324},10,[215,326,257],{},[14,328,329,330,333,334,337],{},"Bu işlemde ",[38,331,332],{},"studentsAge"," map değişkeninin boş değerini ",[38,335,336],{},"make"," fonksiyonu ile oluşturduğumuza dikkat edin. Eğer bu değişkeni oluşturmadan (initialize etmeden), sadece tanımını yaparak değer eklemeye çalışsaydık çalışma zamanında panik hatası alırdık:",[206,339,341],{"className":208,"code":340,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    var studentsAge map[string]int\n    studentsAge[\"john\"] = 32 \u002F\u002F ❌ PANIC!\n    studentsAge[\"bob\"] = 31\n    fmt.Println(studentsAge)\n}\n",[38,342,343,347,351,355,359,363,368,373,377,381],{"__ignoreMap":211},[215,344,345],{"class":217,"line":218},[215,346,276],{},[215,348,349],{"class":217,"line":224},[215,350,282],{"emptyLinePlaceholder":281},[215,352,353],{"class":217,"line":248},[215,354,287],{},[215,356,357],{"class":217,"line":254},[215,358,282],{"emptyLinePlaceholder":281},[215,360,361],{"class":217,"line":294},[215,362,297],{},[215,364,365],{"class":217,"line":300},[215,366,367],{},"    var studentsAge map[string]int\n",[215,369,370],{"class":217,"line":306},[215,371,372],{},"    studentsAge[\"john\"] = 32 \u002F\u002F ❌ PANIC!\n",[215,374,375],{"class":217,"line":312},[215,376,315],{},[215,378,379],{"class":217,"line":318},[215,380,321],{},[215,382,383],{"class":217,"line":324},[215,384,257],{},[14,386,387,388,390,391,394],{},"Yukarıdaki kodda ",[38,389,332],{}," değişkeninin ",[38,392,393],{},"map[string]int"," tipinde bir değişken olduğunu bildirdik fakat bellekte bu değişken için yer ayırmadık. Bu şekilde çalıştırırsak aşağıdaki hatayı alırız:",[206,396,401],{"className":397,"code":399,"language":400},[398],"language-text","panic: assignment to entry in nil map\n\ngoroutine 1 [running]:\nmain.main()\n        \u002Fsrc\u002Fhelloworld\u002Fmain.go:7 +0x4f\nexit status 2\n","text",[38,402,399],{"__ignoreMap":211},[14,404,405,406,408],{},"Bu tarz bir hatayla karşılaşmamak için map tanımlaması yaparken ",[38,407,336],{}," fonksiyonu ile boş bir map oluşturmaya dikkat edin.",[75,410],{},[178,412,414],{"id":413},"go-maplerine-erişim","Go Map'lerine Erişim",[14,416,417,418,421,422,425],{},"Go map'lerindeki bir elemana erişim oldukça kolaydır. Map değişkeninizin adının ",[38,419,420],{},"m"," olduğunu varsayarak ",[38,423,424],{},"m[anahtar]"," şeklinde bir kullanımla o anahtara ait değere ulaşabilirsiniz:",[206,427,429],{"className":208,"code":428,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"selim\"] = 32\n    studentsAge[\"fatma\"] = 31\n    fmt.Println(\"Selim \", studentsAge[\"selim\"], \" yaşında\")\n}\n",[38,430,431,435,439,443,447,451,455,460,465,470],{"__ignoreMap":211},[215,432,433],{"class":217,"line":218},[215,434,276],{},[215,436,437],{"class":217,"line":224},[215,438,282],{"emptyLinePlaceholder":281},[215,440,441],{"class":217,"line":248},[215,442,287],{},[215,444,445],{"class":217,"line":254},[215,446,282],{"emptyLinePlaceholder":281},[215,448,449],{"class":217,"line":294},[215,450,297],{},[215,452,453],{"class":217,"line":300},[215,454,303],{},[215,456,457],{"class":217,"line":306},[215,458,459],{},"    studentsAge[\"selim\"] = 32\n",[215,461,462],{"class":217,"line":312},[215,463,464],{},"    studentsAge[\"fatma\"] = 31\n",[215,466,467],{"class":217,"line":318},[215,468,469],{},"    fmt.Println(\"Selim \", studentsAge[\"selim\"], \" yaşında\")\n",[215,471,472],{"class":217,"line":324},[215,473,257],{},[14,475,476,477,479,480,482,483,486],{},"Eğer map'te var olmayan bir anahtara ait değeri almak isterseniz Go bir hata döndürmez. Bunun yerine map'in sakladığı veri tipinin varsayılan (sıfır) değeri neyse onu döndürür. Örneğin, ",[38,478,393],{}," integer değerler sakladığı için, var olmayan bir anahtar çağrıldığında ",[38,481,203],{}," tipi için varsayılan değer olan ",[38,484,485],{},"0"," döner:",[206,488,490],{"className":208,"code":489,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"selim\"] = 32\n    studentsAge[\"fatma\"] = 31\n    fmt.Println(\"Mahmut \", studentsAge[\"mahmut\"], \" yaşında\")\n}\n",[38,491,492,496,500,504,508,512,516,520,524,529],{"__ignoreMap":211},[215,493,494],{"class":217,"line":218},[215,495,276],{},[215,497,498],{"class":217,"line":224},[215,499,282],{"emptyLinePlaceholder":281},[215,501,502],{"class":217,"line":248},[215,503,287],{},[215,505,506],{"class":217,"line":254},[215,507,282],{"emptyLinePlaceholder":281},[215,509,510],{"class":217,"line":294},[215,511,297],{},[215,513,514],{"class":217,"line":300},[215,515,303],{},[215,517,518],{"class":217,"line":306},[215,519,459],{},[215,521,522],{"class":217,"line":312},[215,523,464],{},[215,525,526],{"class":217,"line":318},[215,527,528],{},"    fmt.Println(\"Mahmut \", studentsAge[\"mahmut\"], \" yaşında\")\n",[215,530,531],{"class":217,"line":324},[215,532,257],{},[14,534,535,536,539],{},"Yukarıdaki kodda olmayan ",[38,537,538],{},"\"mahmut\""," anahtarının değerini istediğimizde ekrana şu çıktı basılacaktır:",[206,541,544],{"className":542,"code":543,"language":400},[398],"Mahmut 0 yaşında\n",[38,545,543],{"__ignoreMap":211},[75,547],{},[78,549,551],{"id":550},"go-maplerinde-anahtar-mevcut-mu-nasıl-anlarız","Go Map'lerinde Anahtar Mevcut mu Nasıl Anlarız?",[14,553,554,555,558],{},"Olmayan bir anahtar sorgulandığında hata oluşmaması pratik görünse de, o anahtarın gerçekten map'te tanımlı olup olmadığını anlamak için Go bize iki dönüşlü bir yapı sunar. Map anahtarına aşağıdaki şekilde erişirseniz geriye iki değer döner: birincisi anahtara ait değer, ikincisi ise o anahtarın map'te tanımlı olup olmadığını gösteren ",[38,556,557],{},"boolean"," bir değerdir:",[206,560,562],{"className":208,"code":561,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"selim\"] = 32\n    studentsAge[\"fatma\"] = 31\n\n    age, exist := studentsAge[\"mahmut\"]\n    if exist {\n        fmt.Println(\"Mahmut\", age, \" yaşında\")\n    } else {\n        fmt.Println(\"Mahmut adında bir kişi yok!\")\n    }\n}\n",[38,563,564,568,572,576,580,584,588,592,596,600,605,611,617,623,629,635],{"__ignoreMap":211},[215,565,566],{"class":217,"line":218},[215,567,276],{},[215,569,570],{"class":217,"line":224},[215,571,282],{"emptyLinePlaceholder":281},[215,573,574],{"class":217,"line":248},[215,575,287],{},[215,577,578],{"class":217,"line":254},[215,579,282],{"emptyLinePlaceholder":281},[215,581,582],{"class":217,"line":294},[215,583,297],{},[215,585,586],{"class":217,"line":300},[215,587,303],{},[215,589,590],{"class":217,"line":306},[215,591,459],{},[215,593,594],{"class":217,"line":312},[215,595,464],{},[215,597,598],{"class":217,"line":318},[215,599,282],{"emptyLinePlaceholder":281},[215,601,602],{"class":217,"line":324},[215,603,604],{},"    age, exist := studentsAge[\"mahmut\"]\n",[215,606,608],{"class":217,"line":607},11,[215,609,610],{},"    if exist {\n",[215,612,614],{"class":217,"line":613},12,[215,615,616],{},"        fmt.Println(\"Mahmut\", age, \" yaşında\")\n",[215,618,620],{"class":217,"line":619},13,[215,621,622],{},"    } else {\n",[215,624,626],{"class":217,"line":625},14,[215,627,628],{},"        fmt.Println(\"Mahmut adında bir kişi yok!\")\n",[215,630,632],{"class":217,"line":631},15,[215,633,634],{},"    }\n",[215,636,638],{"class":217,"line":637},16,[215,639,257],{},[14,641,642],{},"Çıktı şu şekilde olacaktır:",[206,644,647],{"className":645,"code":646,"language":400},[398],"Mahmut adında bir kişi yok!\n",[38,648,646],{"__ignoreMap":211},[75,650],{},[78,652,654],{"id":653},"go-maplerinden-eleman-silme","Go Map'lerinden Eleman Silme",[14,656,657,658,661],{},"Go map'lerinden bir eleman silmek için yerleşik ",[38,659,660],{},"delete()"," fonksiyonunu kullanabilirsiniz:",[206,663,665],{"className":208,"code":664,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"selim\"] = 32\n    studentsAge[\"fatma\"] = 31\n    delete(studentsAge, \"selim\")\n    fmt.Println(studentsAge)\n}\n",[38,666,667,671,675,679,683,687,691,695,699,704,708],{"__ignoreMap":211},[215,668,669],{"class":217,"line":218},[215,670,276],{},[215,672,673],{"class":217,"line":224},[215,674,282],{"emptyLinePlaceholder":281},[215,676,677],{"class":217,"line":248},[215,678,287],{},[215,680,681],{"class":217,"line":254},[215,682,282],{"emptyLinePlaceholder":281},[215,684,685],{"class":217,"line":294},[215,686,297],{},[215,688,689],{"class":217,"line":300},[215,690,303],{},[215,692,693],{"class":217,"line":306},[215,694,459],{},[215,696,697],{"class":217,"line":312},[215,698,464],{},[215,700,701],{"class":217,"line":318},[215,702,703],{},"    delete(studentsAge, \"selim\")\n",[215,705,706],{"class":217,"line":324},[215,707,321],{},[215,709,710],{"class":217,"line":607},[215,711,257],{},[14,713,714,715,718,719,722],{},"Bu kod çalıştırıldığında ",[38,716,717],{},"\"selim\""," anahtarı silinir ve çıktı olarak ",[38,720,721],{},"map[fatma:31]"," basılır. Map'te olmayan bir elemanı silmeye çalışmak da herhangi bir hata üretmez.",[11,724,725,730],{},[14,726,16,727],{},[18,728,729],{},"Özetle:",[22,731,732,737,740],{},[25,733,734],{},[18,735,736],{},"Başlatılmamış (nil) bir map'e eleman eklemeye çalışırsanız panik (hata) alırsınız.",[25,738,739],{},"Başlatılmış bir map'te var olmayan bir anahtara değer atamak yeni bir eleman ekler ve hata vermez.",[25,741,742],{},"Olmayan bir anahtarı sorgulamak veya silmek hata üretmez.",[75,744],{},[78,746,748],{"id":747},"go-maplerini-döngü-i̇çerisinde-kullanmak","Go Map'lerini Döngü İçerisinde Kullanmak",[14,750,751,752,754],{},"Son olarak bir Go Map yapısını döngü içerisinde nasıl kullanacağımıza bakalım. Bunun için ",[38,753,168],{}," anahtar kelimesini kullanabiliriz:",[206,756,758],{"className":208,"code":757,"language":210,"meta":211,"style":211},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    studentsAge := make(map[string]int)\n    studentsAge[\"selim\"] = 32\n    studentsAge[\"fatma\"] = 31\n    for name, age := range studentsAge {\n        fmt.Printf(\"%s\\t%d\\n\", name, age)\n    }\n}\n",[38,759,760,764,768,772,776,780,784,788,792,797,802,806],{"__ignoreMap":211},[215,761,762],{"class":217,"line":218},[215,763,276],{},[215,765,766],{"class":217,"line":224},[215,767,282],{"emptyLinePlaceholder":281},[215,769,770],{"class":217,"line":248},[215,771,287],{},[215,773,774],{"class":217,"line":254},[215,775,282],{"emptyLinePlaceholder":281},[215,777,778],{"class":217,"line":294},[215,779,297],{},[215,781,782],{"class":217,"line":300},[215,783,303],{},[215,785,786],{"class":217,"line":306},[215,787,459],{},[215,789,790],{"class":217,"line":312},[215,791,464],{},[215,793,794],{"class":217,"line":318},[215,795,796],{},"    for name, age := range studentsAge {\n",[215,798,799],{"class":217,"line":324},[215,800,801],{},"        fmt.Printf(\"%s\\t%d\\n\", name, age)\n",[215,803,804],{"class":217,"line":607},[215,805,634],{},[215,807,808],{"class":217,"line":613},[215,809,257],{},[14,811,812],{},"Range ile iki değer döner; bunlardan ilki elemanın anahtarı (key), ikincisi ise değer (value) olacaktır.",[14,814,815,816,819,820],{},"Eğer sadece değerle ilgileniyorsanız, anahtarı görmezden gelmek için alt tire (",[38,817,818],{},"_",") kullanabilirsiniz:\n",[38,821,822],{},"for _, age := range studentsAge",[14,824,825,826],{},"Eğer sadece anahtarla ilgileniyorsanız, değeri görmezden gelmek için ikinci atamayı yapmamanız yeterlidir:\n",[38,827,828],{},"for name := range studentsAge",[14,830,831,832,836],{},"Bir sonraki yazıda, Go'da nesne yönelimli benzeri esneklikler sağlayan ",[63,833,835],{"href":834},"\u002Ftr\u002Fgo-veri-tipleri-struct","Struct"," tipinden bahsedeceğiz.",[838,839,841],"h5",{"id":840},"bu-yazıda-yapılan-değişiklikler","Bu Yazıda Yapılan Değişiklikler",[22,843,844,847],{},[25,845,846],{},"21.06.2026: \"Olmayan anahtara değer atayınca hata alınır\" şeklindeki teknik yanılgı düzeltildi (Hatanın sadece nil map durumunda oluştuğu açıklandı). İmla hataları (map'de -> map'te), klavye hataları (abahtara -> anahtara) ve yanlış terim kullanımları (Map dizisi -> Map yapısı) düzeltildi. Kapak fotoğrafı telif satırları kaldırıldı. Karşılaştırma tablosu ve özet eklendi.",[25,848,849],{},"11.05.2022: Yazı özeti düzenlendi.",[851,852,853],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":211,"searchDepth":224,"depth":224,"links":855},[856,857,858,859,860],{"id":80,"depth":248,"text":81},{"id":180,"depth":224,"text":181},{"id":189,"depth":224,"text":190},{"id":262,"depth":224,"text":263},{"id":413,"depth":224,"text":414,"children":861},[862,863,864],{"id":550,"depth":248,"text":551},{"id":653,"depth":248,"text":654},{"id":747,"depth":248,"text":748},[866],"technical",null,"2021-10-13","Go dilinde Map veri tipinin kullanımı, başlatılması (make), eleman ekleme, silme, sorgulama ve nil map panik hatasının nedenleri.",false,"md","\u002Fimages\u002Fhero\u002Fgo-map.avif",{},"\u002Ftr\u002Fgo-veri-tipleri-map",{"title":6,"description":869},"go-veri-tipleri-map","tr\u002Fgo-veri-tipleri-map",[210,879,880],"golang","map","2026-06-21","0t2r1gm-p7xn3-wdrZ7CjBsZhM42w6OFN7tc4TEhaaU",{"prev":884,"next":886,"others":888,"lucky":1005,"readingTime":294},{"path":834,"title":885},"Go Veri Tipleri: Struct",{"path":65,"title":887},"Go Veri Tipleri: Slice",[889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,937,940,943,946,949,952,953,956,959,962,965,968,971,974,977,980,983,986,989,992,995,996,999,1002],{"path":890,"title":891},"\u002Ftr\u002Fmutable-ve-immutable-kavrami","Mutable ve Immutable Kavramları Nedir?",{"path":893,"title":894},"\u002Ftr\u002Fopenlitespeed-ve-litespeed-enterprisei-reverse-proxy-olarak-kullanmak","OpenLiteSpeed ve LiteSpeed Enterprise Sunucularını Reverse Proxy Olarak Kullanmak",{"path":896,"title":897},"\u002Ftr\u002Fwsl-2-kurulumu-6-kolay-adim","WSL 2 Kurulumu - 6 kolay adım",{"path":899,"title":900},"\u002Ftr\u002Fes13-nedir-ecmascript-2022-nedir","ES13 nedir? ECMAScript 2022 nedir?",{"path":902,"title":903},"\u002Ftr\u002Fvisitor-tasarim-deseni-nedir","Visitor Tasarım Deseni Nedir?",{"path":905,"title":906},"\u002Ftr\u002Flinuxda-golang-kurulumu","Linux'ta Golang Kurulumu",{"path":908,"title":909},"\u002Ftr\u002Fecmascript-nedir-ecmascript-ne-degildir-bilinmesi-gerekenler","ECMAScript Nedir? Bilinmesi Gerekenler...",{"path":911,"title":912},"\u002Ftr\u002Fes6-nedir-ecmascript-2015-nedir","ES6 Nedir? ECMAScript 2015 Nedir?",{"path":914,"title":915},"\u002Ftr\u002Fes5-nedir","ES5 Nedir? JavaScript Geliştiricileri İçin Kılavuz",{"path":917,"title":918},"\u002Ftr\u002Fes9-nedir-ecmascript-2018-nedir","ES9 Nedir? ECMAScript 2018 Nedir?",{"path":920,"title":921},"\u002Ftr\u002Fstate-tasarim-deseni-nedir","State Tasarım Deseni Nedir?",{"path":923,"title":924},"\u002Ftr\u002Fes8-nedir-ecmascript-2017-nedir","ES8 Nedir? ECMAScript 2017 Nedir?",{"path":926,"title":927},"\u002Ftr\u002Fes10-nedir-ecmascript-2019-nedir","ES10 Nedir? ECMAScript 2019 Nedir?",{"path":929,"title":930},"\u002Ftr\u002Ffacade-tasarim-deseni-nedir","Facade Tasarım Deseni Nedir?",{"path":932,"title":933},"\u002Ftr\u002Fvite-nedir","Vite Nedir? Modern Web Geliştirme ve Paketleme Aracı",{"path":935,"title":936},"\u002Ftr\u002Fwordpress-yonetici-sifresini-wp-cli-kullanarak-sifirlama","WordPress Yönetici Şifresini WP-CLI Kullanarak Sıfırlama",{"path":938,"title":939},"\u002Ftr\u002Fmemento-tasarim-deseni-nedir","Memento Tasarım Deseni Nedir?",{"path":941,"title":942},"\u002Ftr\u002Fdecorator-tasarim-deseni-nedir","Decorator Tasarım Deseni Nedir?",{"path":944,"title":945},"\u002Ftr\u002Fes7-nedir-ecmascript-2016-nedir","ES7 Nedir? ECMAScript 2016 Nedir?",{"path":947,"title":948},"\u002Ftr\u002Fes11-nedir-ecmascript-2020-nedir","ES11 Nedir? ECMAScript 2020 Nedir?",{"path":950,"title":951},"\u002Ftr\u002Fnext-js-on-bellegi-nasil-yenilenir-on-demand-cache-regeneration","Next.js Önbelleği Nasıl Yenilenir? \"On-Demand Cache Regeneration\"",{"path":65,"title":887},{"path":954,"title":955},"\u002Ftr\u002Ftricolor-garbage-collection-algoritmasi-nedir","Tricolor Garbage Collection Algoritması Nedir?",{"path":957,"title":958},"\u002Ftr\u002Fmediator-tasarim-deseni-nedir","Mediator Tasarım Deseni Nedir?",{"path":960,"title":961},"\u002Ftr\u002Fbridge-tasarim-deseni-nedir","Bridge Tasarım Deseni Nedir?",{"path":963,"title":964},"\u002Ftr\u002Fes12-nedir-ecmascript-2021-nedir","ES12 Nedir? ECMAScript 2021 Nedir?",{"path":966,"title":967},"\u002Ftr\u002Fgo-veri-tipleri-string-integer-float-complex-boolean-ve-array","Go Veri Tipleri - String, Integer, Float, Complex, Boolean ve Array",{"path":969,"title":970},"\u002Ftr\u002Fiterator-tasarim-deseni-nedir","Iterator Tasarım Deseni Nedir?",{"path":972,"title":973},"\u002Ftr\u002Fobserver-tasarim-deseni-nedir","Observer Tasarım Deseni Nedir?",{"path":975,"title":976},"\u002Ftr\u002Fubuntu-24-04-uzerinde-cyberpanel-kurulumu","Ubuntu 24.04 LTS ve 22.04 LTS Üzerinde CyberPanel Kurulumu",{"path":978,"title":979},"\u002Ftr\u002Fphp-ve-makine-ogrenimi-php-ml-kutuphanesi","PHP ve Makine Öğrenimi: PHP-ML Kütüphanesi ile Pratik Çözümler",{"path":981,"title":982},"\u002Ftr\u002Fgo-programlama-dilinin-ozellikleri","Go Programlama Dilinin Özellikleri",{"path":984,"title":985},"\u002Ftr\u002Fgarbage-collection-ve-golang","Garbage Collection ve Go (Golang)",{"path":987,"title":988},"\u002Ftr\u002Fgo-ve-degiskenler","Go ve Değişkenler",{"path":990,"title":991},"\u002Ftr\u002Fes17-nedir-ecmascript-2026-nedir","ES17 nedir? ECMAScript 2026 nedir?",{"path":993,"title":994},"\u002Ftr\u002Fearly-return-erken-donus-nedir","Early Return \u002F Erken Dönüş nedir?",{"path":834,"title":885},{"path":997,"title":998},"\u002Ftr\u002Fgoda-iota-nedir-iota-ne-zaman-ve-nerede-kullanilir","Go'da iota Nedir? iota Ne Zaman ve Nerede Kullanılır?",{"path":1000,"title":1001},"\u002Ftr\u002Frestapi-ve-hateoas-kavrami","RestApi ve HATEOAS Kavramı",{"path":1003,"title":1004},"\u002Ftr\u002Fdigital-oceanda-vps-kurulumu","DigitalOcean'da VPS (Droplet) Kurulumu: Adım Adım Rehber",{"path":902,"title":903},[1007,1009,1011,1012],{"path":834,"title":885,"date":1008},"2021-10-14",{"path":65,"title":887,"date":1010},"2021-10-10",{"path":966,"title":967,"date":1010},{"path":987,"title":988,"date":1013},"2021-10-04",[1015,1019,1021],{"path":1016,"title":1017,"date":1018},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-abstract-factory-nedir","Abstract Factory Tasarım Deseni Nedir?","2021-07-27",{"path":917,"title":918,"date":1020},"2021-10-19",{"path":893,"title":894,"date":1022},"2021-10-02",1782142002692]