İçeriğe geç
LexerLangv0.1.0

Tipler ve değişkenler

Tip çıkarımı, anotasyon, nullable ve sabitler; tip listesi.

LexerLang
$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çersizdirnull için ? gerekir. Bir değerin boş olabileceği, o değeri okuyan yerde görünmeli.

Tipler#

Metin
int8 int16 int32 int64        uint8 uint16 uint32 uint64
float32 float64               string text
bool check                    object array
null                          void
element event

void yalnızca fonksiyon dönüş tipidir:

LexerLang
func kapat() as void
    out("kapandı")
end func

Değ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:

LexerLang
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_document

Sabitler#

LexerLang
$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#

LexerLang
$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:

LexerLang
$soyad = $kullanici.get("soyad")     # yoksa null

Ayrım bilerek: bir yazım hatasının sessizce null üretmesi, programın durmasından pahalıdır.

Metin işlemleri#

LexerLang
$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()

Sırada#

Sınıflar ve modüller.