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.