Language Tour
Tipe, operator, dan alur kontrol di AHA! — tur 10 menit
Language Tour
Tipe
| Tipe | Catatan |
|---|---|
Int | Bilangan bulat 64-bit — tipe numerik universal |
Bool | Literal true / false; dihasilkan oleh ! |
String | "..." dengan urutan escape (\n, \t, \\, \", \r, \0) |
Operator
| Kategori | Operator |
|---|---|
| Aritmetika | + - * / % |
| Perbandingan | == != < > <= >= (→ Int 0/1) |
| Logika | && || (→ Int 0/1) |
| Prefiks | -x, !x |
| Penugasan | x = value |
Aljabar Boolean yang Menyatu
Semua operator perbandingan dan logika mengembalikan Int 0/1 alih-alih boolean — sehingga hasil logika mengalir langsung ke aritmetika:
fn is_even(n) {
n % 2 == 0
}
print(is_even(4) * 100); // 1 * 100 = 100Tanpa cast, tanpa konversi — logika langsung menyatu.
Variabel
let count = 0;
count = count + 1; // assignment
count // 1Alur Kontrol
if / else
if adalah sebuah ekspresi — ekspresi terakhir dari setiap cabang adalah nilainya:
let x = 10;
let y = 20;
if x > y {
x
} else {
y
}while
let i = 0;
while i < 5 {
i = i + 1;
}
i // 5for
for mengulang pada rentang bilangan bulat a..b (batas akhir eksklusif):
let sum = 0;
for i in 0..10 {
sum = sum + i;
}
sum // 0 + 1 + ... + 9 = 45break / continue
let total = 0;
for i in 0..100 {
if i == 5 {
break;
}
total = total + i;
}
total // 0 + 1 + 2 + 3 + 4 = 10Komentar
// line comment/* block comment */
Builtins
| Builtin | Deskripsi |
|---|---|
print(int) | Cetak sebuah bilangan bulat |
print_str(string) | Cetak sebuah string |
len(string) | Panjang string dalam O(1) |
abs(x), min(a, b), max(a, b) | Pembantu numerik |
Lihat Builtins untuk detailnya.