As a side note. I strongly suggest that you use Int
for rows and columns instead. Likely you won't overflow, and it's easier to interface with other computations.
Also, I think this signature might be more inlined with the API Design Guidelines.
init(rows: Int, columns: Int, repeating: Element)
subscript(row row: Int)
subscript(row row: Int, column column: Int)