Lua – Mảng Trang trướcTrang tiếp theo Mảng là sự sắp xếp có thứ tự của các đối tượng, có […]
Mảng là sự sắp xếp có thứ tự của các đối tượng, có thể là mảng một chiều chứa tập hợp các hàng hoặc mảng nhiều chiều chứa nhiều hàng và cột.
Trong Lua, mảng được triển khai bằng cách sử dụng bảng đánh chỉ mục với các số nguyên. Kích thước của một mảng không cố định và nó có thể phát triển dựa trên yêu cầu của chúng ta, tùy thuộc vào các hạn chế về bộ nhớ.
Mảng một chiều có thể được biểu diễn bằng cấu trúc bảng đơn giản và có thể được khởi tạo và đọc bằng vòng lặp for đơn giản . Một ví dụ đã được biểu diễn ở dưới.Bản thử trực tiếp
array = {"Lua", "Tutorial"} for i = 0, 2 do print(array[i]) end Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.
nil Lua Tutorial
Như bạn có thể thấy trong đoạn mã trên, khi chúng ta cố gắng truy cập một phần tử trong một chỉ mục không có trong mảng, nó sẽ trả về nil. Trong Lua, việc lập chỉ mục thường bắt đầu từ chỉ mục 1. Nhưng cũng có thể tạo các đối tượng ở chỉ mục 0 và dưới 0. Mảng sử dụng chỉ số âm được hiển thị bên dưới, nơi chúng ta khởi tạo mảng bằng vòng lặp for .Bản thử trực tiếp
array = {} for i= -2, 2 do array[i] = i *2 end for i = -2,2 do print(array[i]) end Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.
-4 -2 0 2 4
Mảng nhiều chiều có thể được thực hiện theo hai cách.
Ví dụ cho mảng nhiều chiều của 3. 3 được hiển thị bên dưới bằng cách sử dụng mảng các mảng.Bản thử trực tiếp
-- Initializing the array array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- Accessing the array for i=1,3 do for j=1,3 do print(array[i][j]) end end Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.
1 2 3 2 4 6 3 6 9
Dưới đây là một ví dụ cho mảng đa chiều bằng cách sử dụng các chỉ số thao tác.Bản thử trực tiếp
-- Initializing the array array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns +col] = row*col end end -- Accessing the array for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns +col]) end end Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.
1 2 3 2 4 6 3 6 9
Như bạn có thể thấy trong ví dụ trên, dữ liệu được lưu trữ dựa trên các chỉ số. Có thể đặt các phần tử một cách thưa thớt và đó là cách thực thi Lua của một ma trận hoạt động. Vì nó không lưu trữ các giá trị nil trong Lua, nên có thể tiết kiệm rất nhiều bộ nhớ mà không cần bất kỳ kỹ thuật đặc biệt nào trong Lua so với các kỹ thuật đặc biệt được sử dụng trong các ngôn ngữ lập trình khác.
Lượt xem : 217
This is excellent news!
Haven't seen the build yet, I'll look now.
Checking the build now