İçeriğe geç

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.

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"; // dosya
import { 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 biri

Bazı modüller çalışma zamanı izni gerektirir. saQut varsayılan olarak tüm dış erişimi reddeder. Komut satırından izin verirsin:

Terminal window
saqut run --allow fs prog.sqt
saqut 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:

Terminal window
saqut ir --capabilities prog.sqt
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
net --allow net Planlandı (0.9)

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).