Go dilindeki bu astar ile hız kazanın.
Go, geliştiricilerin tercih ettiği dil olarak birçok ankette ilgi çeken modern programlama dillerinden biridir. Go, kullanımı kolay ve anlaşılır bir sözdizimine sahiptir ve üst düzey performans sağlar.
Web uygulamalarından komut satırı uygulamalarına, bulut hizmetlerine ve ağ oluşturmaya kadar çeşitli uygulamalar oluşturmak için Go’yu kullanabilirsiniz. Go’nun üçüncü taraf paket ekosistemi, diğer birçok kullanım durumunu destekler.
Go, modern bir dilde beklediğiniz özelliklerin çoğuna sahiptir: jenerikler, eşzamanlılık, tür çıkarımı, çöp toplama ve daha fazlası.
Go’ya Başlarken
Go’yu çoğu işletim sisteminde çalıştırabilirsiniz. Kurulumlar sayfasına gidin ve işletim sisteminiz için tercih edilen bir Go sürümünü indirin.
Go’yu indirip yükledikten sonra, .go dosya uzantısına sahip dosyalarda Go kodunu yazmaya ve çalıştırmaya başlayabilirsiniz .
Go’nun diğer programlama dillerinin çoğu özelliğine ve işlevselliğine sahip olduğunu göreceksiniz. Daha önce programlama deneyiminiz varsa, Go’yu basit bulmalısınız.
Go’daki Değişkenler
Go, temel düzeyde oldukça etkileyicidir. Go’da değişkenleri bildirmenin iki yolu vardır. Çeşitli veri türlerinin değişkenlerini bildirmek için var anahtar sözcüğünü kullanabilirsiniz . Tanımlayıcıyı belirledikten sonra, değişkenin veri türünü ayarlamanız gerekir.
var a string
var b int
var c any
var age string = “five years old”
var age = 5 // equivalent to var age int = 5
fmt.Println(age)
Değişkenin veri türünden emin değilseniz, veri türü olarak herhangi birini kullanabilirsiniz .
Değişkenleri bildirmeye benzer bir şekilde const anahtar sözcüğüyle sabitleri de bildirebilirsiniz .
const age = “five years old”
Bildirimlerinden sonra sabitleri değiştirmek imkansızdır.
Go, işlevlerdeki değişkenleri bildirmek için alternatif bir yol sağlar. Eşittir işaretinden önce iki nokta üst üste kullanılmasına dikkat edin:
func main() {
age := “five years old” // equivalent to var age = “five years old”
}
Go’da Koşullar
Go ayrıca programlarda karar verme için koşullara sahiptir. Kararları işlemek için kodunuzdaki if ve else ifadelerini kullanabilirsiniz .
İşte eşitlik için iki tamsayıyı karşılaştıran bir if ifadesi örneği:
var a int = 12
if a == 12 {
fmt.Println(“a equals twelve”)
}
else deyimlerini yalnızca bir if deyimi belirttikten sonra kullanabilirsiniz ve else bloğunu if bloğunu kapattıktan sonra belirtmeniz gerekir :
var a int = 12
if a == 12 {
fmt.Println(“a equals twelve”)
} else {
fmt.Println(“a does not equal twelve”)
}
else bloğu yalnızca if ifadesi false olarak değerlendirildiğinde çalışır . Go, else-if ifadeleri sağlamaz, ancak karmaşık koşullu ifadeler için switch ifadelerini kullanabilirsiniz.
İşte Go’daki bir switch ifadesinin anatomisi.
age := 7
switch age {
case 1:
fmt.Println(“one”)
case 2:
fmt.Println(“two”)
case 3:
fmt.Println(“three”)
default:
fmt.Println(“zero”)
}
Switch anahtar sözcüğüyle switch ifadeleri oluşturabilir , ardından case anahtar sözcüğüyle farklı durumlar belirtebilirsiniz . Varsayılan bir anahtar kelime kullanarak varsayılan durumu işleyebilirsiniz .
Go’daki Döngüler İçin
Go, tekrarlayan görevler için for döngüleri sağlar ve çoğu dilin aksine Go’da while veya do-while döngüsü yoktur.
Popüler C stili for-loop’u veya belirli veri yapılarının desteklediği for-loop aralığını kullanabilirsiniz.
İşte bir Go programında C stili for döngüsü kullanımına bir örnek:
func printer() {
for i := 0; i <= 3; i++ {
fmt.Println(i)
}
}
Go’nun yerleşik döngü aralığını dilimler, haritalar ve diziler gibi bileşik veri yapılarında kullanabilirsiniz. range işlevi , veri yapısını geçerken indeksin indeksini ve öğesini döndürür.
for index, value := range dataStructure {
}
Go’daki Diziler
Diziler, Go’daki bileşik veri türlerinden biridir. Go dizileri, C tarzı dizilere benzer ve bildirim ve örneklemede belirli bir uzunluğa sahiptir.
Go’da dizileri şu şekilde bildirebilirsiniz:
var arr [5]string
arr := [7]int{0, 1, 2, 3, 4, 5, 6}
Dizinin bir konumundaki öğelere erişmek, atamak ve güncellemek için indekslemeyi kullanabilirsiniz:
arr[3] = “three”
Yukarıdaki kod, diziyi dizi değişkeninin dördüncü girişi olarak günceller veya ekler .
Go’daki Dilimler
Go, belirsiz uzunluktaki verilerle uğraşmak için dizilere alternatif olarak dilimler sağlar. Dilimlerin uzunluğunu değiştirebilmeniz dışında, dilimler dizilere benzer.
Bir dilim oluşturmak için yerleşik make işlevini kullanmanız gerekir. Dilimin veri türünü ve başlangıç uzunluğunu make işlevine iletin.
slice := make([]string, 9)
slice[2] = “two”
Öğeleri dilimlere eklemek için ekleme işlevini kullanabilirsiniz. Varsayılan olarak, ekleme işlevi, öğeleri dilimin sonuna ekler.
slice = append(slice, “ten”)
Go, her ekleme işleminde yeni bir dizi oluşturduğundan, dilimlerdeki ekleme işlemleriyle çalışmak pahalı olabilir.
Go’da Haritalar
Haritalar, Go’daki yerleşik ilişkisel (anahtar/değer çifti) veri türüdür. Haritayı somutlaştırmanız gereken bir harita veya basit bir bildirim oluşturmak için make işlevini kullanabilirsiniz .
maps := make(map[string]int) // using the make function
maps := map[string]int{“one”: 1, “two”: 2, “three”: 3} // declaring & instantiating a map
Anahtarları belirterek bir haritadaki değerlere erişebilirsiniz. Ayrıca, bir anahtar/değer çifti belirterek bir haritaya değerler ekleyebilirsiniz.
maps[“one”] = 1 // inserting to the map
one := maps[“one”] // accessing element from the map
Anahtar/değer çiftlerini haritalardan kaldırmak için silme işlevini kullanabilirsiniz . Silme işlevi, haritanın tanımlayıcısını ve kaldırmak istediğiniz çiftin anahtarını alır:
delete(maps, “one”)
Go’daki İşlevler
İşlevler, Go’da kodun yeniden kullanılabilirliği için bir araçtır. Fonksiyonları func anahtar kelimesi ve ardından fonksiyonun tanımlayıcısı ile bildirebilirsiniz :
func main() {
}
Fonksiyonlar, argümanları kabul edebilir ve değerler döndürebilir. Bağımsız değişkenler için tanımlayıcının yanında bağımsız değişken türünü belirtmeniz gerekir.
func add (x string, y int) int {
return x + y
}
Dönüş türünü işlevin kod bloğundan önce belirleyecek ve değer döndüren işlevler için belirtilen türde bir değer döndüreceksiniz.
Go’daki yapılar
Go, tasarım gereği nesne yönelimli bir dil değildir, ancak Go’da yapılar kullanarak nesne yönelimli özellikleri uygulayabilirsiniz .
Yapılar, diğer veri türlerini tek bir varlıkta gruplamak için kullanıcı tanımlı türlerdir. Go yapıları, Go destekli herhangi bir türün değerlerini tutabilir ve işlevler yapıları uygulayabilir.
Go’da bir yapıyı şu şekilde bildirebilirsiniz:
type Game struct {
Name string
Year int
PlayTime float64
Players any
Countries map[string]string
}
Oyun yapısı, harita, dize, tamsayı ve kayan nokta türlerine sahip alanlara sahiptir . Yapıları varsayılan değerlerle somutlaştırabilir veya bunlara değer atayabilirsiniz.
var mko Game // default value instantiation
// instantiating with values
mko := Game{
Name: “Value”,
Year: 1231,
PlayTime: 1345412,
Players: [2]string{“9”, “stuff”},
data: map[string]int{“one”: 1, “two”: 2, “three”: 2},
}
İşlevler, yapı türlerini uygulayabilir ve bunlara erişebilir. İşlev tanımlayıcısından önce struct parametresini belirtmeniz gerekir.
func (g Game) FindGame(name string) {
a := g.Year // accessing struct fields
var b = g.Countries // accessing struct fields
}
Bir işleve bir yapı ilettiğinizde, işlevin yapının alanlarına erişimi olur ve işlev bir yapı yöntemi haline gelir.
Go’nun Birçok Kullanım Durumu Var
Go programlama dilinin temellerini ve Go programları yazmaya başlamak için sözdizimini öğrendiniz.
Go’yu kullanabileceğiniz birçok alan ve uygulama var. Go, yaygın olarak sunucu taraflı bir dil olarak kullanılır ve onunla her zaman web tabanlı uygulamalar oluşturmayı da keşfedebilirsiniz.