The hash symbol acts as a unary length operator.
Length of a string
When used against a string, the length operator returns the number of bytes within the string.
Length of a table
When used against atable that is not sparse, the length operator returns the number of the last non null element in the table. For an empty table, a value of zero will be returned:
Note that if a table contains holes, the length operator considers the first null element to be the end of the table, and will return the element number that immediately precedes the null element.