Standart Kütüphane
saQut’un standart kütüphanesi, programlarınıza dosya sistemi, ağ, sistem
bilgisi, matematik ve tarih erişimi sağlayan import-kapılı modüllerden
oluşur. Her zaman erişilebilir olan yerleşik fonksiyonların (.upper(),
.append()) aksine, standart kütüphane fonksiyonları açıkça import edilmelidir.
Import nasıl çalışır
Bölüm başlığı “Import nasıl çalışır”Her modül tırnaksız adıyla import edilir:
import { readFile, writeFile } from fs;import { sqrt, abs } from math;Tırnaklı ad dosya yolunu, tırnaksız ad standart kütüphane modülünü belirtir:
import { selamla } from "./yardimci.sqt"; // dosyaimport { readFile } from fs; // stdlib modülüBirden fazla fonksiyonu tek ifadede import edebilir veya * ile hepsini
alabilirsin:
import * from fs; // tüm fs fonksiyonlarıimport { readFile } from fs; // yalnızca biriCapability kapıları
Bölüm başlığı “Capability kapıları”Bazı modüller çalışma zamanı izni gerektirir. saQut varsayılan olarak tüm dış erişimi reddeder. Komut satırından izin verirsin:
saqut run --allow fs prog.sqtsaqut run --allow fs,net,sys prog.sqt| Capability | Neye izin verir |
|---|---|
fs |
Dosya sistemi erişimi (okuma, yazma, listeleme) |
net |
Ağ erişimi (HTTP, soket) |
sys |
Sistem çağrıları: güncel zaman, rastgele sayı, ortam değişkenleri, argümanlar |
Capability gerektiren fonksiyonlar bunu bildirir (requires fs). Eşleşen
--allow bayrağı olmadan kullanmaya çalışırsan derleyici derleme zamanında
hata verir. Çalışma zamanı da her çağrıdan önce son bir güvenlik kontrolü
yapar.
Bir programın hangi capability’lere ihtiyaç duyduğunu çalıştırmadan sorgulayabilirsin:
saqut ir --capabilities prog.sqtModül dizini
Bölüm başlığı “Modül dizini”| Modül | Import | Gerektirir | Durum |
|---|---|---|---|
| Dosya sistemi | fs |
--allow fs |
Kullanılabilir |
| Sistem | sys |
--allow sys |
Kullanılabilir |
| Matematik | math |
yok | Kullanılabilir |
| Tarih | date |
--allow sys (yalnızca now()) |
Kullanılabilir |
| Ağ | net |
--allow net |
Planlandı (0.9) |
Hiçbir yerden import edilmez
Bölüm başlığı “Hiçbir yerden import edilmez”Yerleşik tip metotları (.upper(), .append(), .toJson()) standart
kütüphanenin parçası değildir. UFCS (Uniform Function Call Syntax) nokta
gösterimiyle çağrılır ve import gerektirmeden her zaman kullanılabilir.
Bkz. Yerleşik Fonksiyonlar (UFCS).
