Go, Google tarafından geliştirilen, açık kaynaklı bir programlama dilidir. Hız, basitlik ve güvenilirlik üzerine odaklanmıştır. Özellikle sistem programlama, ağ programlama ve büyük ölçekli yazılım projeleri için uygundur.
Go’nun Özellikleri
Go’nun bazı temel özellikleri şunlardır:
- Basitlik: Go’nun sözdizimi temiz ve anlaşılırdır, bu da öğrenmeyi ve kod yazmayı kolaylaştırır.
- Hız: Go, derlenen bir dildir ve yüksek performans sunar.
- Eşzamanlılık: Go, goroutine’ler ve kanallar aracılığıyla eşzamanlı programlamayı kolaylaştırır.
- Güvenlik: Go, bellek güvenliği konusunda titizdir ve çöp toplama özelliği sayesinde bellek sızıntılarını önler.
- Statik Tiplendirme: Go, statik tiplendirme ile derleme zamanında hataları yakalar.
- Platform Bağımsızlığı: Go, farklı işletim sistemlerinde (Windows, macOS, Linux) çalışabilir.
Go’nun Kullanım Alanları
Go, çeşitli alanlarda yaygın olarak kullanılır:
- Web Geliştirme: Go, web uygulamaları ve API’ler geliştirmek için popüler bir seçimdir.
- Sistem Programlama: Go, işletim sistemi düzeyinde programlar ve araçlar geliştirmek için kullanılabilir.
- Ağ Programlama: Go, ağ sunucuları ve istemcileri geliştirmek için uygundur.
- Bulut Bilişim: Go, bulut tabanlı uygulamalar ve mikro hizmetler geliştirmek için tercih edilir.
- Veri Bilimi: Go, veri işleme ve analiz uygulamaları için kullanılabilir.
Go ile İlk Program
Aşağıda, Go ile yazılmış basit bir “Merhaba, Dünya!” programı bulunmaktadır:
package main
import "fmt"
func main() {
fmt.Println("Merhaba, Dünya!")
}
Bu programı çalıştırmak için, aşağıdaki adımları izleyin:
main.go
adında bir dosya oluşturun ve yukarıdaki kodu içine yapıştırın.- Terminali açın ve dosyanın bulunduğu dizine gidin.
go run main.go
komutunu çalıştırın.
Bu komut, programı derleyecek ve çalıştıracaktır. Sonuç olarak, terminalde “Merhaba, Dünya!” çıktısını göreceksiniz.
Go’da Temel Kavramlar
- Paketler: Go programları paketler halinde düzenlenir.
main
paketi, programın giriş noktasını içerir. - İçe Aktarma:
import
anahtar kelimesi, diğer paketlerin işlevlerini kullanmak için kullanılır. - Fonksiyonlar: Fonksiyonlar, belirli bir görevi yerine getiren kod bloklarıdır.
main
fonksiyonu, programın başladığı yerdir. - Değişkenler: Değişkenler, veri saklamak için kullanılır. Go’da değişkenler
var
anahtar kelimesiyle tanımlanır. - Veri Tipleri: Go, çeşitli veri tiplerini destekler, örneğin:
int
: Tam sayılarfloat64
: Kayan noktalı sayılarstring
: Metinbool
: boolean (true/false)
- Kontrol Yapıları: Go, programın akışını kontrol etmek için çeşitli yapılar sunar, örneğin:
if
,else if
,else
: Koşullu ifadelerfor
: Döngülerswitch
: Çoklu dallanma
Go’da Eşzamanlılık
Go, eşzamanlılığı desteklemek için goroutine’ler ve kanallar sağlar. Goroutine, hafif bir iş parçacığıdır ve Go’da eşzamanlı olarak çalışan fonksiyonlardır. Kanallar, goroutine’ler arasında veri alışverişi yapmak için kullanılır.
package main
import (
"fmt"
"time"
)
func selam(mesaj string) {
fmt.Println(mesaj)
}
func main() {
go selam("Merhaba!")
go selam("Dünya!")
time.Sleep(1 * time.Second)
}
Bu örnekte, selam
fonksiyonu iki kez goroutine olarak çağrılır. time.Sleep
fonksiyonu, goroutine’lerin tamamlanmasını beklemek için kullanılır.
Go Modülleri
Go modülleri, bağımlılık yönetimini kolaylaştırmak için kullanılır. Bir modül, bir veya daha fazla Go paketinden oluşan bir koleksiyondur. Modüller, projenizin bağımlılıklarını belirtmenizi ve yönetmenizi sağlar.
Yeni bir modül oluşturmak için, aşağıdaki komutu kullanabilirsiniz:
go mod init <modül_adı>
Örneğin:
go mod init [github.com/kullaniciadi/projeadi](https://github.com/kullaniciadi/projeadi)
Bu komut, projenizin kök dizininde go.mod
adında bir dosya oluşturur.
Go ile Web Geliştirme
Go, web uygulamaları geliştirmek için güçlü bir dildir. net/http
paketi, HTTP sunucuları ve istemcileri oluşturmak için kullanılabilir. Ayrıca, birçok popüler web çerçevesi (örneğin, Gin, Echo, Fiber) Go ile web geliştirmeyi daha da kolaylaştırır.
package main
import (
"fmt"
"net/http"
)
func handleAnaSayfa(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Merhaba, Dünya!")
}
func main() {
http.HandleFunc("/", handleAnaSayfa)
http.ListenAndServe(":8080", nil)
}
Bu örnekte, bir HTTP sunucusu oluşturulur ve “/” yoluna gelen istekler handleAnaSayfa
fonksiyonu tarafından işlenir. Sunucu, 8080 portunda dinlenir.
Go Kaynakları
- Resmi Go Web Sitesi: Go hakkında kapsamlı bilgi, dökümantasyon ve öğreticiler içerir.
- Go Tour: Go’yu etkileşimli olarak öğrenmek için harika bir kaynaktır.
- Go by Example: Go’yu örneklerle öğrenmek için kullanışlıdır.
- Effective Go: Go kodu yazarken dikkat edilmesi gereken stil ve en iyi uygulamaları açıklar.
Bu Markdown belgesi, Go programlama diline genel bir bakış sunar. Go’nun temel özelliklerini, kullanım alanlarını ve bazı temel kavramlarını ele alır. Go ile ilk programınızı nasıl yazacağınızı ve eşzamanlılığı nasıl kullanacağınızı gösterir. Ayrıca, Go modüllerini ve web geliştirmeyi de tanıtır. Son olarak, Go öğrenmek için bazı yararlı kaynaklar sunar.
Yorumlar