Strings store text, concatenate with .., and report length with #.

string length The `#` operator returns the length of a string.

Strings

language
strings.lua
Replay: real traced execution (multi-file project)
local language = "Lua"
local message = "Hello, " .. language
local length = #message

print(message)
print("length=" .. length)
local language = "Python"
local message = "Hello, " .. language
local length = #message

print(message)
print("length=" .. length)
local language = "Ruby"
local message = "Hello, " .. language
local length = #message

print(message)
print("length=" .. length)
  1. language ← Lua, message ← Hello, Lua, length ← 10

    1local language→ Lua = "Lua" --@language="Python", "Ruby"2local message→ Hello, Lua = "Hello, " .. languageLua3local length→ 10 = #messageHello, Lua45print(messageHello, Lua)6print("length=" .. length10)
    outputHello, Lua
    length=10
  1. language ← Python, message ← Hello, Python, length ← 13

    1local language→ Python = "Python"2local message→ Hello, Python = "Hello, " .. languagePython3local length→ 13 = #messageHello, Python45print(messageHello, Python)6print("length=" .. length13)
    outputHello, Python
    length=13
  1. language ← Ruby, message ← Hello, Ruby, length ← 11

    1local language→ Ruby = "Ruby"2local message→ Hello, Ruby = "Hello, " .. languageRuby3local length→ 11 = #messageHello, Ruby45print(messageHello, Ruby)6print("length=" .. length11)
    outputHello, Ruby
    length=11

Follow the String

  1. language starts as Lua.
  2. message = "Hello, " .. language.
  3. message becomes Hello, Lua.
  4. #message gives length 10.
  5. The program prints Hello, Lua and length=10. | language | message | length | | --- | --- | --- | | Lua | Hello, Lua | 10 | | Python | Hello, Python | 13 | | Ruby | Hello, Ruby | 11 |

Exercise: strings.lua

Reproduce Hello, Lua and length=10, then use Python and Ruby to predict each message and length.