## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# Chapter 4. Working with Tables

This chapter explores a new data type called a table. It's a data structure, which means that it lets you combine other values. Because of its flexibility, it is Lua's only data structure. (It is possible to create other, special-purpose data structures in C.)

In this chapter, you learn how to do the following:

• Create and modify tables

• Loop through the elements of tables

• Use Lua's built-in table library

• Write programs in an object-oriented style

• Write functions that take variable numbers of arguments

# Tables Introduced

The following example creates a table and assigns it to the variable `NameToInstr`, and then looks around inside the table:

```> `NameToInstr = {["John"] = "rhythm guitar",`
>>   `["Paul"] = "bass guitar",`
>>   `["George"] = "lead guitar",`
>>   `["Ringo"] = "drumkit"}`
> `print(NameToInstr["Paul"])`
bass guitar
> `A = "Ringo"`
> `print(NameToInstr[A])`
drumkit
> `print(NameToInstr["Mick"])`
nil```

A table is a collection of key-value pairs. In this example, the expression that starts and ends with `{` and `}` (curly braces) is a table constructor that creates a table that associates the key `"John"` with the value `"rhythm guitar"`, the key `"Paul"` with the value `"bass guitar"`, and so on. Each key is surrounded in `[` and `]` (square brackets) and is separated from its value by an equal sign. The key-value pairs are separated from each other by commas.

After the table is created and assigned to `NameToInstr`, square brackets are used to retrieve the values for particular keys. When `NameToInstr["Paul"] ...`

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required