İçeriğe geç
Educora
Başlangıç12 dk1 / 10

Go nedir? İlk programın

Go'nun neden geliştirildiğini ve nerelerde kullanıldığını öğren, onu kur ve `go run` ile ilk programını çalıştır.

Kendini test et
Bu derste öğreneceklerin
  • Go'nun temel özelliklerini ve kullanım alanlarını açıklamak
  • Go'yu kurmak ve go mod init, go run, go build komutlarını kullanmak
  • package main ve func main() içeren bir program yazıp fmt ile ekrana çıktı vermek

Bir bulut hizmetine dosya yüklediğinde ya da bir mobil uygulamada sipariş verdiğinde, isteğin büyük olasılıkla Docker konteynerlerinde çalışan ve Kubernetes tarafından yönetilen sunuculardan geçer. Bu iki teknolojinin ikisi de Go ile yazılmıştır. Bu derste Go'nun ne olduğunu öğrenecek, onu kuracak ve ilk programını çalıştıracaksın.

Go nedir?

Go (sıklıkla Golang diye de anılır), Google'da geliştirilmiş açık kaynaklı bir programlama dilidir. Yazarları Robert Griesemer, Rob Pike ve Ken Thompson'dır; Thompson aynı zamanda Unix işletim sisteminin yaratıcılarından biridir. Dil üzerindeki çalışmalar 2007'de başladı, Go Kasım 2009'da kamuoyuna duyuruldu ve ilk kararlı sürüm Go 1.0 2012'de çıktı.

Go'nun yaratıcılarının üç hedefi vardı: sadelik (dilde yalnızca 25 anahtar kelime vardır), hız (kod doğrudan makine koduna derlenir ve derleme çok hızlıdır) ve çok çekirdekli işlemcilerde kolay eşzamanlılık. Sonuçta Go; bulut hizmetleri, sunucular ve DevOps araçları için en popüler dillerden biri hâline geldi.

  • Konteynerler ve bulut — Docker ve Kubernetes'in yanı sıra Prometheus (izleme) ve Terraform (altyapı yönetimi) de Go ile yazılmıştır.
  • Web sunucuları ve API'ler — standart kütüphanedeki net/http paketiyle ek bir çatı (framework) olmadan sunucu yazılabilir.
  • Komut satırı araçları — GitHub'ın gh aracı ve Hugo site üreticisi Go ile yazılmıştır. Bir Go programı tek bir çalıştırılabilir dosyaya derlenir; bu yüzden dağıtması çok kolaydır.
ÖzellikAnlamı
Derlenen dilKod makine koduna çevrilir; program sanal makine olmadan çalışır.
Statik tür denetimiHer değişkenin türü derleme sırasında denetlenir; birçok hata program çalışmadan yakalanır.
Çöp toplayıcıBelleği kendin serbest bırakmazsın: Go kullanılmayan nesneleri otomatik temizler.
Goroutine'lergo anahtar kelimesiyle binlerce hafif eşzamanlı görev başlatılabilir.
Tek çalıştırılabilir dosyago build her şeyi tek bir dosyada toplar; onu sunucuya kopyalamak yeterlidir.

Kurulum ve ilk program

  1. 1
    Go'yu indir

    go.dev/dl adresinden işletim sistemine uygun yükleyiciyi (Windows, macOS ya da Linux) indir ve çalıştır.

  2. 2
    Kontrol et

    Yeni bir terminal penceresi aç ve go version yaz. Kurulu sürüm görünüyorsa her şey hazırdır.

  3. 3
    Proje oluştur

    hello adlı bir klasör oluştur, içine geç ve go mod init hello komutunu çalıştır. Bu komut, proje adını ve Go sürümünü tutan go.mod dosyasını oluşturur.

  4. 4
    Kodu yaz

    Aynı klasörde main.go dosyası oluştur ve aşağıdaki programı yaz. Rahat editörler: resmî Go eklentisiyle Visual Studio Code ya da GoLand.

  5. 5
    Çalıştır

    go run . komutu programı derler ve hemen çalıştırır. go build ise çalıştırılabilir bir dosya oluşturur (Windows'ta hello.exe).

Go
package main

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}
Beklenen çıktı
Hello, world!
main.go dosyası
  • package main — her Go dosyası bir paket bildirimiyle başlar. main özel bir pakettir: ondan kütüphane değil, çalıştırılabilir bir program oluşur.
  • import "fmt", standart kütüphaneden biçimlendirilmiş girdi-çıktı paketini ekler (fmt, format kelimesinin kısaltmasıdır).
  • func main() programın giriş noktasıdır. Çalışma buradan başlar; bu fonksiyon bittiğinde program da sona erir.
  • fmt.Println(...), fmt paketindeki Println fonksiyonunu çağırır: değeri ekrana yazar ve yeni satıra geçer. Dikkat et: satır sonunda noktalı virgül yok; Go onu kendisi ekler.

Ekrana yazdırmak

fmt paketinde üç temel fonksiyon vardır. Println birkaç değeri boşlukla ayırarak yazar ve sonunda yeni satıra geçer. Print yeni satıra geçmez. Printf ise bir biçim dizesiyle çalışır: %s, %d gibi işaretlerin yerine argümanlar konur, yeni satır için \n yazılır.

Go
package main

import "fmt"

func main() {
	fmt.Println("My name is", "Aysel")
	fmt.Println(7+8, 7*8, 10-3)
	fmt.Print("Hello, ")
	fmt.Print("Go!\n")
	fmt.Printf("%s is %d years old\n", "Murad", 15)
	fmt.Printf("%v has type %T\n", 3.5, 3.5)
}
Beklenen çıktı
My name is Aysel
15 56 7
Hello, Go!
Murad is 15 years old
3.5 has type float64
BelirteçNe yazdırırÖrnek
%vherhangi bir değeri varsayılan biçimde3.5
%sbir dizeMurad
%dbir tam sayı15
%.2fondalık kısmında 2 basamak olan sayı3.14
%Tdeğerin türüfloat64

Katı ama yararlı bir derleyici

Go derleyicisi, başka dillerin yalnızca uyardığı şeyler yüzünden programı hiç derlemez. Kullanılmayan bir değişken ya da eklenip kullanılmayan bir paket hatadır. Bu başta tuhaf gelir ama kodun temiz kalmasını sağlar. Açılan süslü parantez ise her zaman satırın sonunda olmalıdır, çünkü Go satır sonlarına noktalı virgülü otomatik ekler.

Derlenmez
package main

import (
    "fmt"
    "os"
)

func main()
{
    fmt.Println("Hi");
}
Doğru, gofmt biçiminde
package main

import "fmt"

func main() {
	fmt.Println("Hi")
}
Soldaki kodda iki hata var: { yeni satırda ve os paketi hiç kullanılmıyor. ; ise hata değil, yalnızca gereksiz; gofmt onu siler.
KodDerleyici mesajıNe yapmalı
import "os""os" imported and not usedPaket eklenmiş ama kullanılmıyor; satırı sil.
x := 5declared and not used: xDeğişken tanımlanmış ama hiç okunmuyor; onu kullan ya da sil.
func main(), { ise alt satırdasyntax error: unexpected semicolon or newline before {Süslü parantezi önceki satırın sonuna taşı.
Yeni başlayanların en sık karşılaştığı derleme hataları
1 / 6

Önemli noktalar

  • Go, Google'da geliştirilmiş (2009) sade, hızlı ve derlenen bir dildir; Docker ve Kubernetes onunla yazılmıştır.
  • go mod init proje oluşturur, go run . programı çalıştırır, go build çalıştırılabilir dosya üretir.
  • Çalıştırılabilir bir program package main paketinde olmalı ve func main() fonksiyonundan başlamalıdır.
  • Println değerleri boşlukla ayırıp satırı bitirir; Printf bir biçim dizesiyle çalışır: %v, %s, %d, %T.
  • Kullanılmayan değişkenler ve paketler hatadır; { satır sonuna yazılır, kodu da go fmt biçimlendirir.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
Go hangi şirkette geliştirildi?