Tipler ve değişkenler
Tip çıkarımı, anotasyon, nullable ve sabitler; tip listesi.
$a = "osman" # değişebilir, tip çıkarımlı
$a as string = 10 # tip anotasyonu; "10" olur
$a as string? = null # nullable: string | null
$a as string *= "osman" # sabit; sonradan atama hatadır$a as string = null geçersizdir — null için ? gerekir. Bir değerin boş olabileceği, o değeri okuyan yerde görünmeli.
Tipler#
int8 int16 int32 int64 uint8 uint16 uint32 uint64
float32 float64 string text
bool check object array
null void
element eventvoid yalnızca fonksiyon dönüş tipidir:
func kapat() as void
out("kapandı")
end funcDeğer döndürmek hata verir.
check üç durumludur: true / false / null. Bir onay kutusunun işaretlenmemiş olmasıyla hiç gönderilmemiş olması aynı şey değildir.
element ve event yalnızca javascript bloklarında anlamlıdır: biri bir DOM öğesini, diğeri bir tarayıcı olayını gösterir. Sunucu tarafında karşılıkları yoktur.
byte, float8, float16 ve float128 yoktur.
Sınıf adları tip değildir#
Bir sınıf örneği döndüren fonksiyon as object ile işaretlenir. Nesne olduğu gibi geçer — sınıfı ve metotları korunur:
func sayfa($baslik) as object
$doc = new html_document
$doc.title = $baslik
return $doc
end func
$res.send(sayfa("Ana Sayfa")) # hâlâ bir html_documentSabitler#
$api_adres as string *= "https://api.ornek.com"*= ile atanan bir değişkene ikinci kez atamak hatadır. Bu bir okuma kolaylığı değil, bir güvence: yapılandırma değerinin çalıştırmanın ortasında değişmediğini bilirsiniz.
Nesneler ve diziler#
$kullanici = {ad: "Osman", yas: 30}
$diller = ["tr", "en"]
out($kullanici.ad)
out($diller.get(0))
out($diller.length.to_string())$kullanici.soyad yoksa hata verir. İsteğe bağlı bir alan okumak için get kullanılır:
$soyad = $kullanici.get("soyad") # yoksa nullAyrım bilerek: bir yazım hatasının sessizce null üretmesi, programın durmasından pahalıdır.
Metin işlemleri#
$s.split(",") $s.join("-") $s.replace("a", "b")
$s.slice(0, 5) $s.trim() $s.lower()
$s.upper() $s.starts_with("a") $s.contains("b")
$s.length $n.to_string()