Pengantar kamus

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Kamus adalah tabel yang mengaitkan nama atau kunci dengan suatu nilai, bukan dengan indeks.

Contoh:

Sintaks kamus Luau

local pet = {
Name = "Bobbie",
Type = "Dog",
}

Gunakan kamus ketika Anda perlu memberi label pada nilai, bukan hanya menyusunnya dalam urutan seperti yang dilakukan array. Latihan menggunakan kamus dalam tutorial ini dengan memanipulasi nilai yang terkait dengan seorang pemain.

Sintaks kamus

Seperti array, kamus ditugaskan ke sebuah variabel dengan kurung kurawal {}. Pasangan kunci-nilai disimpan pada baris terpisah diikuti dengan koma. Kunci dan nilai dapat berupa jenis data apapun, termasuk string, angka, dan nama variabel.


local playerNames = {
player1 = "Zap",
player2 = "Kel",
}
print(playerNames["player1"])

Untuk merujuk bagian atau objek lain sebagai kunci, gunakan tanda kurung.


local greenPart = workspace.GreenPart
local redPart = workspace.RedPart
local partList = {
[greenPart] = true,
[redPart] = false,
}
print(partList[redPart])

Membuat kamus

Salah satu penggunaan sehari-hari kamus adalah mengorganisir informasi pemain atau karakter. Langkah-langkah berikut menjelaskan bagaimana informasi karakter musuh teoretis dapat disimpan dan diakses.

  1. Dalam skrip baru, buat kamus bernama enemy.


    local enemy = {
    }
  2. Kunci pertama dalam kamus akan melacak nama musuh dengan sebuah variabel yang disebut Name.


    local enemy = {
    Name
    }
  3. Tetapkan nama musuh ke kunci tersebut, diikuti dengan koma.


    local enemy = {
    Name = "Spike",
    }
  4. Tambahkan pasangan kunci-nilai kedua untuk seberapa banyak kesehatan yang harus dimiliki musuh. Ingat, kunci harus selalu menggunakan tipe data yang sama, tetapi nilai tidak harus.


    local enemy = {
    Name = "Spike",
    Health = 1000,
    }

Menggunakan nilai kamus

Ada dua cara untuk mengakses nilai kamus:

  • tableName["keyName"] (yang penting, perhatikan tanda kutip)
  • tableName.keyName

local enemy = {
Name = "Spike",
Health = 1000,
}
print("Penjahat " .. enemy["Name"] .. " mendekat!")
print("Penjahat " .. enemy.Name .. " mendekat!")

Gaya mana yang digunakan biasanya tergantung pada tujuan tabel. Untuk tabel yang menyimpan koleksi nilai seperti daftar pemain di server, programmer biasanya akan menggunakan tableName["keyName"]. Untuk kamus yang digunakan untuk menjelaskan sebuah objek, programmer lebih mungkin menggunakan tableName.keyName.

Mengubah nilai kamus

Mengubah nilai kunci sama dengan variabel lain; gunakan operator sama dengan =.

  1. Di bawah tabel enemy, atur nama musuh menjadi sesuatu yang lain.


    local enemy = {
    Name = "Spike",
    Health = 1000,
    }
    enemy.Name = "Rana"
    print("Nama musuh adalah " .. enemy.Name)
  2. Uji permainan dan periksa jendela Output.

Variabel yang sudah ada sebagai kunci

Kamus dapat berinteraksi dengan variabel yang sudah ada yang dinyatakan di bagian lain dari skrip. Contoh kode berikut menggunakan variabel untuk menambahkan nama pemain sebagai kunci saat mereka bergabung dengan pengalaman dan kemudian mengatur nilai poin mereka menjadi 0.

  1. Di ServerScriptService, buat skrip baru bernama PlayerPoints. Di dalam skrip, ambil Layanan Players dan buat kamus kosong bernama playerPoints.


    local Players = game:GetService("Players")
    local playerPoints = {
    }
  2. Kode fungsi lokal untuk mengatur poin pemain dengan parameter untuk variabel pemain baru. Hubungkan fungsi ke acara Players.PlayerAdded.


    local playerPoints = {
    }
    local function setPoints(newPlayer)
    end
    Players.PlayerAdded:Connect(setPoints)
  3. Dalam fungsi, tambahkan variabel untuk mendapatkan Name pemain, sebuah properti di setiap objek Player, dan sebuah pernyataan print untuk pengujian.


    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    end
  4. Masukkan name ke dalam kamus playerPoints sebagai kunci, dan atur nilai, poin pemain, menjadi 0.


    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    playerPoints[name] = 0
    end
  5. Gunakan name untuk mencetak nama pemain dan playerPoints[name] untuk mencetak nilai kunci yang cocok dengan variabel tersebut.


    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    playerPoints[name] = 0
    print(name .. " memiliki " .. playerPoints[name] .. " poin.")
    end
  6. Jalankan proyek dan amati outputnya.

Skrip selesai

local Players = game:GetService("Players")
local playerPoints = {
}
local function setPoints(newPlayer)
local name = newPlayer.Name
print("halo " .. name)
playerPoints[name] = 0
print(name .. " memiliki " .. playerPoints[name] .. " poin.")
end
Players.PlayerAdded:Connect(setPoints)

Tantangan opsional

Berikut adalah beberapa tantangan yang berlaku untuk menggunakan kamus dengan cara yang berbeda. Lihat apakah Anda dapat membangun kode untuk ini.

  • Buat bagian jebakan yang memberikan kerusakan seiring waktu kepada pemain. Setelah pemain menyentuh jebakan, berikan kerusakan pada mereka, tunggu, lalu izinkan mereka untuk terkena kerusakan lagi.
  • Buat fungsi yang memeriksa pemain mana dari dua pemain yang memiliki poin terbanyak dengan mengakses sebuah kamus.
  • Buat sebuah cipher, sebuah sistem untuk menukar satu string dengan yang lain untuk membuat kode "rahasia". Misalnya, huruf "A" dapat ditukar dengan "G," atau kata "apel" dapat ditukar dengan "jeruk."

Kamus dan pairs()

pairs() adalah sebuah fungsi yang sering digunakan untuk mengiterasi kamus. Contoh terlihat di bawah ini.


local myDictionary = {
["Pemain Biru"] = "Ana",
["Pemain Emas"] = "Binh",
["Pemain Merah"] = "Cate",
}
for key, value in pairs(myDictionary) do
print(key .. " adalah " .. value)
end

pairs() dapat digunakan untuk bekerja dengan kunci elemen kamus, nilai, atau keduanya. Dalam loop for di bawah ini, variabel pertama adalah kunci. Variabel kedua adalah nilai. Kamus yang ingin Anda kerjakan diberikan ke pairs().


local inventory = {
["Bricks Emas"] = 43,
Carrots = 3,
Torches = 2,
}
print("Anda memiliki:")
for itemName, itemValue in pairs(inventory) do
print(itemValue, itemName)
end

Ketika dijalankan, kode akan mencetak yang berikut:


Anda memiliki:
43 Bricks Emas
3 Carrots
2 Torches

Ringkasan

Kamus adalah tabel yang menggunakan pasangan kunci-nilai alih-alih nilai terindeks. Kamus dan array dimulai dengan cara yang serupa dengan menetapkan kurung kurawal pada sebuah variabel. Jaga agar entri dipisahkan dengan koma.

Semua kunci dalam kamus harus menggunakan tipe data yang sama, tetapi nilai dapat mencampur tipe data tanpa masalah.

Cara di mana kamus diakses dapat menyampaikan tujuannya. Kamus properti musuh kemungkinan akan diakses dengan operator titik, sementara daftar nama kemungkinan akan menggunakan tableName[keyName].

Saat menggunakan tanda kurung, berhati-hatilah; nama kunci yang dibuat dalam tabel harus diperlakukan sebagai string: tableName["keyName"]. Namun, saat merujuk objek seperti bagian, tanda kutip tidak diperlukan: tableName[keyName].

Banyak skrip perlu melalui kamus atau array, tetapi Anda mungkin tidak selalu tahu awal dan akhir dari struktur data ini. Misalnya, sebuah kamus pemain mungkin berubah, atau pemain mungkin memiliki inventaris array dengan ukuran yang bervariasi.

Dalam situasi ini, Anda dapat menggunakan pairs() dan ipairs() dalam loop for untuk melalui setiap elemen tanpa titik awal dan akhir yang diketahui. Anda juga dapat menggunakan iterasi umum melalui kata kunci in untuk melintasi elemen tanpa perlu pairs() atau ipairs().

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.