Chia Sẻ Kiến Thức Về Tiền Mã Hoá. Cách Tham Gia ICO, Phân Tích Kĩ Thuật, etc. Những Kinh Nghiệm Thật Tình Dựa Trên Trải Nghiệm Thực Tế Nhất Của Người Viết Blog Về Thị Trường Này

Post Page Advertisement [Top]

[Seri Solidity - Ethereum][PJ Xổ Số] Bài 5: Tạo Biến Cho Contract


Chúng ta cùng xem việc tạo biến trong Solidity như thế nào nhé...




1. Các loại biến

Thật ra mình tính nói điều này trong bài viết Hello World, tuy nhiên mục đích của bài đó là giúp bạn có cái nhìn sơ khởi về Solidity. Về cơ bản, Solidity có các kiểu biến tương tự như những ngôn khác:

Ở trên bạn chú ý, Solidity có thêm kiểu dữ liệu address. Tức là nó dùng để lưu địa chỉ ETH, khi dùng kiểu dự liệu này bạn có thể tương tác với tài khoản đó (xem số dư, gửi tiền,...)

2. Tạo biến cho project xổ số

Cho ta sẽ tạo 3 biến:

  1. manager: Sẽ có kiểu là address như ta nói ở trên, mục đích là để lưu trữ địa chỉ người tạo contract
  2. players: Có dữ liệu là một mảng address, khi ai bỏ tiền vào contract (mua vé) thì sẽ lưu địa chỉ người đó vào đây
  3. lastWinner: Cũng có kiểu dữ liệu address, dùng để lưu người trúng giải ở kì trước

Ok, cùng viết thôi! Bạn vào https://remix.ethereum.org/ như thường lệ và gõ như sau:


Không giống như những ngôn ngữ khác như Javascript sẽ tự động chọn kiểu dữ liệu cho bạn, Solidity bắt bạn phải khai báo rõ ràng. Cá nhân mình thấy điều này khá tốt vì mình sẽ biết được chác chắn biến đó đang là kiểu dữ liệu nào. Để đặt tên biến bạn làm theo cú pháp:

Đối với mảng, bản chỉ cần gõ thêm 2 ký tự [] đằng sau. Như ví dụ trên thì biến players sẽ lưu 1 mảng address. Sau này nếu bạn tạo 1 mảng string thì gõ string[] hoặc mảng int gõ int[]. Sau khi bạn tạo 3 biến đó xong, ta tiếp tục tạo 1 function constructor:


Như mình đã nói ở bài Hello World, function constructor chỉ được chạy duy nhất. Ở đây bạn thấy có một hàm lạ là msg.sender. Msg là 1 hàm đặc biệt của Solidity, nó sẽ lưu thông tin địa chỉ mà publish cái contract này.

Chúng ta có thể test xem nó hoạt động thế nào nhé. Bạn vào mục Run trong Remix và bấm nút Deploy:


Bạn có thể thấy ở phía trên tài khoản ETH là "...a733c" đã được lưu vào trong biến manager. Ta sẽ dùng biến manager để kiểm tra kiểm tra xem chỉ duy nhất manager có quyền được chọn người chiến thắng ( ở bài sau). Ở đây mình nói lại về trạng thái public của biến chút. Bạn thử xoá chữ public ở biến manager rồi deploy lại xem:

Chữ public khá là quan trọng


3. Tổng kết

Chúng ta đã học được cách tạo biến trong Solidity, cách hoạt động của function constructor. Ở bài sau, ta sẽ viết những function xử lý người chơi tham gia xổ số

Không có nhận xét nào:

Đăng nhận xét

Bottom Ad [Post Page]