What is the concatenation operator in Lua?

Overview

Lua has a handful of operators which can perform a variety of operations. These operators widely cover:

  • Arithmetic operations
  • Bitwise operations
  • Logical operations
  • Relational operations
  • Concatenation operation
  • Length operations and more

In this shot we will look at the concatenation operation.

Concatenation operation

The concatenation operation involves an operator which links two chunks of strings as one word.

The string concatenation operator used in Lua is denoted by two dots ('..'). In a case where the operands at the left and right-hand sides of the operator are not strings but numbers, or a combination of numbers and strings, then the numbers will be converted to strings in a non-specified format. Otherwise, the _concat metamethod will be tried by Lua in order to try and concatenate the chunks.

Example

For example, if A = "The first chunk" and B = "the second chunk" are to be concatenated, we simply do A..B, and the outcome will be: "The first chunk the second chunk".

Code example

In the code snippet below, we will see a few concatenation operations.

--declare variables
stringVal1 = "Educative Edpresso "
stringVal2 = "A revered platform "
stringVal3 = "For dev/tech byte size shots, "
stringVal4 = "Enjoy your reading"
--concatenate the earlier declared chunks and print it
print(stringVal1..stringVal2)
--concatenate the earlier declared chunks and print it
print(stringVal3..stringVal4)
--concatenate both numbers and strings
print("This will concatenate numbers ".. 4053 .." strings " .. 32)
--joining a value from a table to another
tableVal = {"this", "is", "table", 3};
print(tableVal[2] .. "join them")

Explanation

  • Lines 3–6: We declare the variables.

  • Lines 9 and 11: We use the double dots concatenation operator, .., to concatenate and print the values of the earlier declared variables.

  • Line 14: We try a concatenation of both numbers and strings.

  • Line 17: We defined a table variable.

  • Line 19: We concatenate a single element from the earlier declared table with another.

Code for a sample erroneous concatenation operation

The code snippet below will have some concatenation attempts that are illegal and will throw an error:

tableVal = {"this", "is", "table", 3};
--this operation will throw an error.
print(tableVal .. "join them")

Explanation

In the code snippet above, the attempt to concatenate a table with a string value throws an error.

  • Line 2: We declare a table variable.
  • Line 5: We attempt to concatenate the entire table with a string value and print it. This was not successful, as it throws an error.

Free Resources