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.

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.

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
main.zig
adlı yeni bir dosya oluşturun- Tercih ettiğiniz metin düzenleyicide açın
- 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:
const std = @import("std");
Zig'in standart kitaplığını içe aktarırpub fn main() void {
programınızın giriş noktası olarak işlev gören ana işlevi bildirirstd.debug.print("Merhaba, {s}!\\\\n", .{"Dünya"});
standart hata akışına (stderr) "Merhaba, Dünya!" yazdırır{s}
dizeler için bir biçim belirticidir ve.{"Dünya"}
Zig'in biçim belirticilere argümanları nasıl geçirdiğidir
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:
test_pass.zig
adlı yeni bir dosya oluşturun- 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:
test_fail.zig
adlı bir dosya oluşturun- 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:
- Resmi Zig belgelerini keşfetmek
- Discord veya Ziggit forumunda Zig topluluğuna katılmak
- Daha iyi IDE entegrasyonu için Zig Language Server'ı yüklemek
- Pratik deneyim kazanmak için küçük projeler oluşturmaya çalışmak
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!