io.openはエラーがあると、2つ目の戻り値として、エラーメッセージを返す。 そして、assertは1番目がnilもしくはfalseで、2番目はエラーとして表示するメッセージを受け取る。 よって、以下のようなイディオムよく出てくる。
myfile = assert(io.open(name, "r"))