Bài 11 : Lua – mảng

Bài 11 : Lua – mảng

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ó […]

Learn more »

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ó 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

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 đa chiều

Mảng nhiều chiều có thể được thực hiện theo hai cách.

  • Mảng của mảng
  • Mảng một chiều bằng cách thao tác các chỉ số

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

Integrations
Users

Share Profile

Anyone at KeenThemes can view
Anyone with link can edit

Give Award

Anyone at KeenThemes can view
Anyone with link can edit

Report User

Let us know why you’re reporing this person
Don't worry, your report is completely anonymous; the person you're
reporting will not be informed that you've submitted it