Sözdizimi ve Değişkenler
Veri Tipleri
Section titled “Veri Tipleri”Tulpar aşağıdaki veri tiplerini destekler:
| Tip | Açıklama | Örnek |
|---|---|---|
int | Tam sayılar | int x = 42; |
float | Ondalıklı sayılar | float pi = 3.14; |
str | UTF-8 metinler | str isim = "Hamza"; |
bool | Mantıksal değerler | bool bayrak = true; |
array | Karışık tipli diziler | array karisik = [1, "metin", 3.14]; |
arrayInt | Tip güvenli tam sayı dizileri | arrayInt sayilar = [1, 2, 3]; |
arrayFloat | Tip güvenli ondalıklı sayı dizileri | arrayFloat degerler = [1.5, 2.5]; |
arrayStr | Tip güvenli metin dizileri | arrayStr isimler = ["Ali", "Veli"]; |
arrayBool | Tip güvenli mantıksal diziler | arrayBool bayraklar = [true, false]; |
arrayJson | JSON benzeri nesneler | arrayJson nesne = {"anahtar": "değer"}; |
Değişkenler ve Sabitler
Section titled “Değişkenler ve Sabitler”Değişkenler tipleriyle birlikte tanımlanır:
Sayı Literalleri
Section titled “Sayı Literalleri”Tam sayılar dört tabanda yazılabilir. Alt çizgi kullanılamaz — büyük sayıları yorumla okunaklı tutun.
| Form | Örnek | Ondalık değer |
|---|---|---|
| Ondalık | 255 | 255 |
| Onaltılık | 0xFF | 255 |
| Sekizlik | 0o755 | 493 |
| İkilik | 0b1010 | 10 |
Ondalıklı sayılar standart C tarzı formları kabul eder:
float pi = 3.14;float kucuk = 1.0e-5;float buyuk = 6.02e23;i64 aralığını aşan tam sayılar derleme zamanı uyarısı tetikler ve
INT64_MAX’a (2^63 − 1) sıkıştırılır.
String’ler & interpolation
Section titled “String’ler & interpolation”String’ler UTF-8’dir ve + ile birleşir. +’nın bir tarafı string ise,
diğer operand otomatik olarak metin formuna çevrilir — "adet: " + 5,
"adet: 5" olur, toString() gerekmez.
Okunabilir interpolation için t-string kullanın — bir string
literal’in önüne t koyup ifadeleri { } içine gömün:
str name = "Hamza";int age = 24;
// t-string: { } içindeki ifadeler değerlendirilip yerleştirilir.print(t"{name}, {age} yaşında");
// Parantez içinde her ifade çalışır.int a = 3; int b = 4;print(t"toplam = {a + b}, büyük = {a > b}");
// Index erişimi (iç tırnaklar sorun değil):json user = {"name": "Ada", "role": "admin"};print(t"kullanıcı {user["name"]} ({user["role"]})");
// Literal süslü parantez \{ ... \} ile yazılırprint(t"\{interpolasyon değil\} ama {age} öyle");Bir t-string her zaman bir str üretir, yalnızca interpolation olsa
bile (t"{n}"). Literal süslü parantezi \{ / \} ile yazın. Tercih
ederseniz düz + birleştirme hâlâ kullanılabilir.
Operatör Önceliği
Section titled “Operatör Önceliği”Operatörler en düşükten en yükseğe önceliğe göre listelenmiştir. Aynı satırdaki operatörler eşit önceliğe sahiptir ve belirtilmediği sürece soldan sağa birleşir.
| Seviye | Operatörler | Birleşme |
|---|---|---|
| 1 (en düşük) | = += -= *= /= | sağ |
| 2 | || | sol |
| 3 | && | sol |
| 4 | == != | sol |
| 5 | < > <= >= | sol |
| 6 | + - (ikili) | sol |
| 7 | * / % | sol |
| 8 | - (tekli), ! | sağ |
| 9 (en yüksek) | ++ -- (postfix), () çağrı, [] indeks, . üye | sol |
Şüpheniz varsa parantez kullanın — birden fazla seviyedeki öncelik kurallarına güvenmekten daha iyi okunur:
// Her ikisi de derlenir, ama parantezli form daha nettir.int skor = a + b * c; // = a + (b * c)int skor = a + (b * c);Yorum Satırları
Section titled “Yorum Satırları”Tulpar tek satırlı ve çok satırlı yorumları destekler: