Mapping khác Array (mảng) như thế nào trong Solidity?

Trong Solidity, array (mảng) và mapping là hai kiểu dữ liệu phổ biến được sử dụng để lưu trữ một tập hợp các giá trị. Mặc dù chúng đều có mục đích tương tự, nhưng có một số điểm khác biệt chính giữa hai kiểu dữ liệu này.

Trong phần này, chúng ta sẽ thảo luận về những điểm khác biệt chính giữa mảng và mapping trong Solidity. Chúng ta sẽ xem xét cách chúng lưu trữ dữ liệu, cách chúng được truy cập và những ưu điểm và nhược điểm của từng kiểu dữ liệu.

Mảng và mapping là hai kiểu dữ liệu phổ biến trong Solidity. Chúng đều được sử dụng để lưu trữ một tập hợp các giá trị, nhưng có một số điểm khác biệt chính giữa hai kiểu dữ liệu này.

Mảng lưu trữ các giá trị theo thứ tự, với mỗi giá trị có một chỉ số duy nhất. Kích thước của mảng có thể là cố định hoặc động. Mảng cố định có kích thước được xác định khi nó được khai báo, trong khi mảng động có thể được mở rộng khi cần thiết.

Mapping lưu trữ các giá trị dưới dạng các cặp key-value. Key là một giá trị duy nhất xác định giá trị. Value là giá trị được lưu trữ cho key đó. Mapping có thể được sử dụng để lưu trữ một tập hợp các giá trị có thể được truy cập bằng key.

Nếu bạn cần lưu trữ một tập hợp các giá trị có thứ tự, thì mảng là lựa chọn tốt hơn. Nếu bạn cần lưu trữ một tập hợp các giá trị có thể được truy cập bằng key, thì mapping là lựa chọn tốt hơn.

Dưới đây là một số điểm khác biệt chính giữa mảng và mapping trong Solidity:

Tính năngMảngMapping
Cách lưu trữTheo thứ tựTheo key-value
Kích thướcCó thể cố định hoặc độngĐộng
Truy cậpTheo chỉ sốTheo key
Sử dụngLưu trữ một tập hợp các giá trị có thứ tựLưu trữ một tập hợp các giá trị có thể được truy cập bằng key

Ví dụ, đây là cách tạo một mảng có chứa ba giá trị:

Solidity

uint[] numbers = [1, 2, 3];

Đây là cách tạo một mapping có chứa các cặp key-value:

Solidity

mapping(uint => string) names = {
  1 => "John Doe",
  2 => "Jane Doe",
  3 => "Mary Doe"
};

Để truy cập một giá trị trong mảng, bạn có thể sử dụng chỉ số của giá trị đó. Ví dụ:

Solidity

// Truy cập giá trị thứ hai trong mảng
uint secondNumber = numbers[1];

Để truy cập một giá trị trong mapping, bạn có thể sử dụng key của giá trị đó. Ví dụ:Solidity

// Truy cập giá trị có key là 2
string name = names[2];

Mảng và mapping đều có những ưu điểm và nhược điểm riêng. Mảng là lựa chọn tốt hơn nếu bạn cần lưu trữ một tập hợp các giá trị có thứ tự. Mapping là lựa chọn tốt hơn nếu bạn cần lưu trữ một tập hợp các giá trị có thể được truy cập bằng key.

Kết:

Array (Mảng) và mapping đều là những công cụ mạnh mẽ có thể được sử dụng để lưu trữ một tập hợp các giá trị trong Solidity. Việc lựa chọn kiểu dữ liệu nào phụ thuộc vào nhu cầu cụ thể của ứng dụng.

Nếu bạn cần lưu trữ một tập hợp các giá trị có thứ tự, thì mảng là lựa chọn tốt hơn. Nếu bạn cần lưu trữ một tập hợp các giá trị có thể được truy cập bằng key, thì mapping là lựa chọn tốt hơn.

Nhìn chung, cả mảng và mapping đều là những công cụ hữu ích có thể được sử dụng để lưu trữ dữ liệu trong Solidity. Khi lựa chọn kiểu dữ liệu nào, điều quan trọng là phải hiểu những điểm khác biệt chính giữa chúng để bạn có thể lựa chọn kiểu dữ liệu phù hợp nhất cho ứng dụng của mình.

Vietnam Pham – Click Digital

Leave a Reply

Your email address will not be published. Required fields are marked *