Ответ 1
Вы правы, это один из способов сделать это. Это не сработает и не будет ошибок, если ваша переменная "String" не является строкой.
Лично я обычно предпочитаю использовать что-то вроде..
myString = string.lower(myString)
Но это действительно то же самое, что делать
myString = myString:lower()
предполагая, что myString на самом деле является строкой.
"длинная" версия имеет одно преимущество, она действительно работает, если myString - это число, а вторая - ошибки в этом случае.