Yeni Başlayanlar İçin Zig Eğitimi: Zig Nasıl Kurulur ve Kullanılır

Bu makale Zig programlama dilinin temellerini, Zig'in nasıl kurulacağını vb. gösteriyor.

Efe Demir

Efe Demir

5 June 2025

Yeni Başlayanlar İçin Zig Eğitimi: Zig Nasıl Kurulur ve Kullanılır

Zig, sağlam, optimum ve bakımı yapılabilir olmak üzere tasarlanmış modern, genel amaçlı bir programlama dilidir. Basitlik ve açıklığa odaklanan Zig, gizli kontrol akışından ve tahsislerden kaçınırken düşük seviyeli kontrol sağlar. Bu eğitim, kurulum süreci, ilk Zig programınızı oluşturma ve testleri çalıştırma konusunda size rehberlik edecektir. Sonunda, bu güçlü dili daha fazla keşfetmek için sağlam bir temele sahip olacaksınız.

Güçlü geliştirici araçlarını keşfederken, API geliştirme ve test etme için Postman'e nihai bir alternatif olan Apidog'dan bahsetmeye değer. Apidog, API dokümantasyonunu, tasarımını, sahtesini, testini ve hata ayıklamasını tek, düzenli bir platformda birleştirir.

button

Sezgisel arayüzü, işbirliğine dayalı özellikleri ve kesintisiz sürüm kontrol entegrasyonu ile Apidog, API'lerle çalışan geliştiriciler için iş akışı verimliliğini önemli ölçüde artırır. Kapsamlı özellik seti, otomatik test, ortam yönetimi, istek zincirleme ve akıllı yanıt doğrulama içerir ve onu modern geliştirme ekipleri için vazgeçilmez bir araç haline getirir.

button

Zig programlamaya dalmadan önce, API'ler ve web hizmetleriyle çalışırken genel verimliliğinizi artırmak için geliştirici araç setinize Apidog eklemeyi düşünün.

Bölüm 1: Zig'i Yükleme

Zig'de programlamaya başlamadan önce, derleyiciyi ve araçları yüklemeniz gerekir. Kurulum süreci, işletim sisteminize bağlı olarak değişir.

Linux'a Yükleme

Linux'a Zig yüklemek için iki ana seçeneğiniz vardır:

1. Seçenek: Dağıtımınızın paket yöneticisini kullanma

Çoğu büyük Linux dağıtımı, en son Zig sürümünü paketler. Bu genellikle en kolay yaklaşımdır:

# Debian/Ubuntu için
sudo apt install zig

# Fedora için
sudo dnf install zig

# Arch Linux için
sudo pacman -S zig

2. Seçenek: Manuel olarak yükleme

Dağıtımınızda Zig yoksa veya belirli bir sürüme ihtiyacınız varsa:

CPU mimarinizle eşleşen, resmi web sitesinden Zig'in önceden oluşturulmuş bir sürümünü indirin

Mimarınızı kontrol etmek için şunu kullanın:

uname -m

Arşivi tar kullanarak çıkarın:

tar xf zig-linux-x86_64-0.13.0.tar.xz

Zig ikili dosyasını PATH'inize ekleyin:

echo 'export PATH="$HOME/zig-linux-x86_64-0.13.0:$PATH"' >> ~/.bashrc

Değişiklikleri uygulayın:

source ~/.bashrc

Windows'a Yükleme

Windows kullanıcılarının çeşitli seçenekleri vardır:

1. Seçenek: Paket yöneticilerini kullanma

# Chocolatey'yi kullanma
choco install zig

# Winget'i kullanma
winget install zig.zig

# Scoop'u kullanma
scoop install zig

2. Seçenek: Manuel kurulum

CPU mimarinizle eşleşen Windows için Zig'in önceden oluşturulmuş bir sürümünü indirin (çoğu Windows sistemi x86_64/AMD64 kullanır)

Mimarınızı şunlarla kontrol edin:

$Env:PROCESSOR_ARCHITECTURE

ZIP dosyasını çıkarın

Zig'i PATH'inize ekleyin:

Geçerli Kullanıcı için:

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", "User") + ";C:\\\\path\\\\to\\\\zig-windows-x86_64",
    "User"
)

Sistem Geneli için:

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\\\\path\\\\to\\\\zig-windows-x86_64",
    "Machine"
)

Terminalinizi kapatıp yeniden açın

macOS'a Yükleme

macOS'a Zig yüklemenin en basit yolu Homebrew'i kullanmaktır:

brew install zig

Kurulumunuzu Doğrulama

Kurulumdan sonra, Zig'in doğru şekilde yüklendiğini kontrol etmek için şunu çalıştırın:

zig version

Şuna benzer bir çıktı görmelisiniz:

0.13.0

Bölüm 2: Zig'de Merhaba Dünya!

Zig yüklendiğine göre, ilk Zig programınızı oluşturalım: geleneksel "Merhaba, Dünya!" örneği.

Program Dosyasını Oluşturma

  1. main.zig adlı yeni bir dosya oluşturun
  2. Tercih ettiğiniz metin düzenleyicide açın
  3. Aşağıdaki kodu ekleyin:
const std = @import("std");

pub fn main() void {
    std.debug.print("Merhaba, {s}!\\\\n", .{"Dünya"});
}

Bu kodun ne yaptığını inceleyelim:

Programı Çalıştırma

Programınızı derlemek ve çalıştırmak için aşağıdaki komutu kullanın:

zig run main.zig

Bu, kodunuzu derler ve hemen yürütür. Çıktıyı görmelisiniz:

Merhaba, Dünya!

Dosya Kodlaması Hakkında Önemli Not

Zig, kaynak dosyalar için UTF-8 kodlaması gerektirir. geçersiz baytlar gibi bir hatayla karşılaşırsanız, dosyanız farklı bir kodlamaya sahip olabilir. Bunu düzeltmek için:

zig fmt main.zig

Bu, dosyanızı UTF-8 olarak yeniden kodlayacaktır. Ardından dosyayı düzenleyicinizde yeniden açın.

Bölüm 3: Zig'de Testleri Çalıştırma

Zig, testleri yazmayı ve çalıştırmayı kolaylaştıran yerleşik bir test çerçevesine sahiptir. Özellikle Zig belgelerindeki birçok örnek test olarak sağlandığından, Zig'i öğrenirken testleri nasıl kullanacağınızı anlamak çok önemlidir.

Geçen Basit Bir Test Oluşturma

Temel bir test dosyası oluşturalım:

  1. test_pass.zig adlı yeni bir dosya oluşturun
  2. Aşağıdaki kodu ekleyin:
const std = @import("std");
const expect = std.testing.expect;

test "her zaman başarılı olur" {
    try expect(true);
}

Bu kod, test modülünü içe aktarır, ardından true'nun doğru olmasını bekleyen (her zaman olduğu gibi) "her zaman başarılı olur" adlı bir test tanımlar.

Bu testi çalıştırmak için:

zig test test_pass.zig

Şuna benzer bir çıktı görmelisiniz:

Tüm 1 test geçti.

Başarısız Olan Bir Test Oluşturma

Şimdi, Zig'in test hatalarını nasıl ele aldığını anlamak için başarısız olan bir test oluşturalım:

  1. test_fail.zig adlı bir dosya oluşturun
  2. Aşağıdaki kodu ekleyin:
const std = @import("std");
const expect = std.testing.expect;

test "her zaman başarısız olur" {
    try expect(false);
}

Bu test, false'un doğru olmasını bekler, bu da açıkça başarısız olur.

Şunu çalıştırdığınızda:

zig test test_fail.zig

Şuna benzer bir hata çıktısı göreceksiniz:

Test [1/1] test.her zaman başarısız olur... BAŞARISIZ (TestBeklenmeyenSonuç)
/usr/lib/zig/std/testing.zig:515:14: 0x2241ef in expect (test)
if (!ok) return error.TestUnexpectedResult;
^
[...]/test_fail:5:5: 0x224305 in test.her zaman başarısız olur (test)
try expect(false);
^
0 geçti; 0 atlandı; 1 başarısız oldu.

Testlerde Hata İşlemeyi Anlama

try anahtar sözcüğü Zig testlerinde çok önemlidir. Hata döndürebilecek bir işlevi yürütmeye çalışır. Bir hata döndürülürse, bu hatayı çağıran kişiye yayar.

Aynı testi try anahtar sözcüğü olmadan çalıştırmayı deneyin:

test "doğru şekilde derlenmeyecek" {
    expect(false);
}

expect()'in döndürebileceği olası hatayı işlemediğiniz için bir derleyici hatası alacaksınız.

Bölüm 4: Yeni Başlayanlar İçin Zig Temelleri

Değişkenler ve Sabitler

Zig'de, değişkenleri ve sabitleri aşağıdaki gibi tanımlarsınız:

const std = @import("std");

pub fn main() void {
    // Sabit (değiştirilemez)
    const fixed_value = 42;

    // Değişken (değiştirilebilir)
    var changeable_value = 10;
    changeable_value = 20; // Bu izin verilir

    // Türleri açıkça belirtebilirsiniz
    const explicit_integer: i32 = 1234;
    var explicit_float: f64 = 3.14159;

    std.debug.print("Sabit: {d}, Değişken: {d}\\\\n",
        .{fixed_value, changeable_value});
}

Temel Veri Türleri

Zig'in birkaç yerleşik veri türü vardır:

const std = @import("std");

pub fn main() void {
    // Tamsayılar
    const i: i32 = -42;       // İşaretli 32 bit tamsayı
    const u: u32 = 42;        // İşaretsiz 32 bit tamsayı

    // Ondalıklı sayılar
    const f: f32 = 3.14;      // 32 bit ondalıklı sayı
    const d: f64 = 2.71828;   // 64 bit ondalıklı sayı

    // Boole
    const b: bool = true;

    // Karakterler ve dizeler
    const c: u8 = 'A';                    // Karakter (tamsayı olarak)
    const s: []const u8 = "Merhaba, Zig!";  // Dize (u8 dilimi)

    // Derleme zamanında bilinen sabit boyutta diziler
    const arr = [5]u8{1, 2, 3, 4, 5};

    std.debug.print("Tamsayı: {d}, Ondalıklı Sayı: {d}\\\\n", .{i, f});
    std.debug.print("Dize: {s}\\\\n", .{s});
}

Fonksiyonlar

Zig'deki fonksiyonlar fn anahtar sözcüğü kullanılarak tanımlanır:

const std = @import("std");

// Parametreli ve dönüş değerine sahip temel fonksiyon
fn add(a: i32, b: i32) i32 {
    return a + b;
}

// Hata döndürebilen fonksiyon
fn divide(a: f32, b: f32) !f32 {
    if (b == 0) {
        return error.DivisionByZero;
    }
    return a / b;
}

pub fn main() void {
    // Basit bir fonksiyonu çağırın
    const sum = add(5, 3);
    std.debug.print("5 + 3 = {d}\\\\n", .{sum});

    // Hata döndürebilen bir fonksiyonu çağırın
    if (divide(10, 2)) |result| {
        std.debug.print("10 / 2 = {d}\\\\n", .{result});
    } else |err| {
        std.debug.print("Hata: {}\\\\n", .{err});
    }

    // Hataları işlemenin başka bir yolu
    const division_result = divide(10, 0) catch |err| {
        std.debug.print("Bölme başarısız: {}\\\\n", .{err});
        0; // Hata durumunda varsayılan değer
    };
    std.debug.print("Sonuç (veya varsayılan): {d}\\\\n", .{division_result});
}

Sonuç

Bu eğitim, farklı işletim sistemlerinde kurulum, ilk programınızı oluşturma ve çalıştırma ve Zig'in test çerçevesiyle çalışma gibi Zig'e başlamanın temel unsurlarını kapsamaktadır. Ayrıca değişkenler, veri türleri ve fonksiyonlar gibi bazı temel kavramları da tanıttık.

Zig, güvenliği, açıklığı ve bakımı vurgularken düşük seviyeli kontrol sunan güçlü bir dildir. Hata işleme ve bellek yönetimine yaklaşımı, onu C, C++ ve Rust gibi dillere ilginç bir alternatif haline getiriyor.

Zig yolculuğunuza devam etmek için şunları göz önünde bulundurun:

Zig'in hala gelişmekte olduğunu unutmayın, bu nedenle dil 1.0 sürümüne doğru olgunlaştıkça bazı özellikler değişebilir. İyi kodlamalar!

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin