09. Toolkit print

Sejak Bab 07, print sudah jadi jendela kamu untuk melihat isi program yang sedang berjalan. Ternyata ia bisa lebih dari sekadar menampilkan satu string. Bab ini mengumpulkan semua trik yang akan kamu pakai dari sini: beberapa nilai sekaligus, menyambung potongan-potongan jadi satu baris, dan baris kosong.

Beberapa nilai, dipisah tab

Pisahkan nilai-nilai dengan koma untuk mengoper lebih dari satu ke print. Semuanya akan dicetak dalam satu baris dengan tab di antara masing-masing:

print("Name", "Level", "HP")
print("Keiko", 7, 95)

Keluaran (jarak antar nilai adalah tab, jadi kolomnya kurang lebih sejajar):

Name    Level   HP
Keiko   7       95

Ada dua hal yang perlu diperhatikan. Nilai boleh berbeda tipe — string dan angka bisa dicampur bebas. Dan angka tidak perlu tanda kutip; 7 adalah angka, "7" adalah string.

Satu nilai, disambung dengan ..

Cara koma selalu memberi tab di antara nilai. Untuk mengontrol spasi sepenuhnya, bangun string dengan .., operator penggabung dari Bab 07:

print("Level " .. 7 .. " reached!")

Keluaran:

Level 7 reached!

Dengan .. tidak ada tab otomatis — kamu yang menentukan apa yang ada di antara potongan-potongan, termasuk spasi. Angka yang ditempatkan di samping .. otomatis berubah jadi teks.

Buka exercises/09/01-comma-vs-glue.lua. Program ini mencetak tiga nilai dua kali: sekali dengan koma, sekali disambung dengan ... Jalankan dan bandingkan hasilnya.

Koma atau ..: mana yang dipakai?

Keduanya boleh. Panduan kasarnya:

  • Koma: paling cepat untuk sederetan nilai ketika jarak tab sudah cukup (debugging, tabel cepat).
  • ..: untuk kalimat yang rapi dengan spasi dan tanda baca yang tepat, seperti "Keiko has 95 HP".
local name = "Keiko"
local hp = 95
print(name, "has", hp, "HP")        -- Keiko   has     95      HP
print(name .. " has " .. hp .. " HP")  -- Keiko has 95 HP

Baris kedua terbaca seperti kalimat; baris pertama punya jarak tab di antaranya.

Baris kosong

print() tanpa apa pun di dalamnya mencetak satu baris kosong. Gunakan ini untuk memberi jarak pada keluaran supaya lebih mudah dibaca:

print("Chapter 1")
print()
print("Chapter 2")

Keluaran:

Chapter 1

Chapter 2

Angka bukan teksnya

Satu hal lagi. Dua ini terlihat sama tapi bertipe berbeda:

print(7)        -- the number seven
print("7")      -- a string containing the character 7

Keduanya menampilkan 7, tapi yang satu adalah angka dan yang lain teks — tipe yang berbeda. Lua kadang bisa menjembatani perbedaan ini, tapi jangan bergantung padanya. Kamu akan bertemu tipe-tipe di bagian berikutnya. Untuk sekarang, cukup tahu bahwa angka dan versi teksnya berbeda meskipun tampilannya sama. Ini penting di bab input, di mana apa yang diketik pengguna masuk sebagai teks.

PR

File PR ada di exercises/09/homework/.

Soal 1 — Baris statistik

Buka exercises/09/homework/01-stat-row.lua. Menggunakan satu print dengan koma, cetak ini dalam satu baris: string Keiko, angka 7, dan angka 95. Jalankan dan perhatikan jarak tabnya.

Soal 2 — Baris yang rapi

Buka exercises/09/homework/02-polished-line.lua. Cetak baris ini persis:

Keiko has 95 HP at level 7

menggunakan .. untuk menyambung potongan-potongannya, dengan name, hp, dan level dari variabel-variabel di bagian atas. Spasi harus sama persis.

Soal 3 — Diberi jarak

Buka exercises/09/homework/03-spaced-out.lua. Cetak tiga baris teks dengan satu baris kosong di antara masing-masing, menggunakan print() untuk baris kosongnya. Total lima pemanggilan.

Tantangan — Struk belanja

Buka exercises/09/homework/04-receipt.lua. Tiga item dengan harganya tersimpan dalam variabel. Cetak sebuah struk: setiap item di barisnya sendiri sebagai name .. ": " .. price, satu baris kosong, lalu baris total yang dibangun dengan ... Kamu sudah menghitung totalnya sebelumnya.

Mentok atau sudah selesai? Buka halaman solusi PR.