İçeriğe geç

Sözdizimi ve Değişkenler

Tulpar aşağıdaki veri tiplerini destekler:

TipAçıklamaÖrnek
intTam sayılarint x = 42;
floatOndalıklı sayılarfloat pi = 3.14;
strUTF-8 metinlerstr isim = "Hamza";
boolMantıksal değerlerbool bayrak = true;
arrayKarışık tipli dizilerarray karisik = [1, "metin", 3.14];
arrayIntTip güvenli tam sayı dizileriarrayInt sayilar = [1, 2, 3];
arrayFloatTip güvenli ondalıklı sayı dizileriarrayFloat degerler = [1.5, 2.5];
arrayStrTip güvenli metin dizileriarrayStr isimler = ["Ali", "Veli"];
arrayBoolTip güvenli mantıksal dizilerarrayBool bayraklar = [true, false];
arrayJsonJSON benzeri nesnelerarrayJson nesne = {"anahtar": "değer"};

Değişkenler tipleriyle birlikte tanımlanır:

Değişkenler

Tam sayılar dört tabanda yazılabilir. Alt çizgi kullanılamaz — büyük sayıları yorumla okunaklı tutun.

FormÖrnekOndalık değer
Ondalık255255
Onaltılık0xFF255
Sekizlik0o755493
İkilik0b101010

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 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ır
print(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ö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.

SeviyeOperatörlerBirleş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, . üyesol

Şü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);

Tulpar tek satırlı ve çok satırlı yorumları destekler:

Yorum Satırları