Zig'de `pub fn` Kullanımı
Zig ile çalışırken bir dosyada yazdığım fonksiyona başka bir dosyadan erişmem gerekti. Bunu mümkün kılan yapı pub fn.
pub fn Nedir?
Zig'de fonksiyonlar varsayılan olarak sadece tanımlandıkları dosyada erişilebilirdir. Eğer bir fonksiyonun diğer dosyalardan da çağrılmasını istiyorsam, onu pub ile tanımlamam gerekir.
pub fn main() void {
// kod
}
pub, fonksiyonun dış dünyaya açık olduğunu belirtir.
Dosya Yapısı
Projede iki dosya kullandım:
.
├── greeting.zig
└── main.zig
greeting.zig: Fonksiyon Tanımı
Bu dosyada bir selamlama fonksiyonu yazdım ve pub ile erişilebilir hale getirdim:
const std = @import("std");
const print = std.debug.print;
pub fn greet() void {
print("Hello User\n", .{});
}
main.zig: Fonksiyonu Kullanmak
greeting.zig dosyasındaki fonksiyonu bu şekilde çağırdım:
const std = @import("std");
const greetings = @import("greeting.zig");
pub fn main() !void {
greetings.greet();
}
@import("greeting.zig") ile fonksiyonu içeri aldım ve greetings.greet() ile çağırdım.
Çalıştırma
Programı terminalde şu komutla çalıştırdım:
zig run main.zig
Sonuç
pub fn, Zig'de fonksiyonların farklı dosyalar arasında paylaşılmasına olanak tanıyor. Modüler yapı kurarken vazgeçilmez bir özellik.