Tiếp nối với bài viết trước tìm hiểu về kiểu dữ liệu Integer trong ngôn ngữ Solidity thì ở bài viết này mình sẽ cùng nhau khám phá thêm kiểu dữ liệu Boolean trong Solidity. Nếu bạn chưa xem bài viết trên thì bạn có thể đọc ở bài viết bên dưới nhé!
1. Định nghĩa:
- Tương tự như bao ngôn ngữ khác, kiểu dữ liệu Boolean trong ngôn ngữ Solidity cũng chỉ tồn tại hai giá trị duy nhất đó chính là: true hoặc false.
- Cách khai báo 1 biến với kiểu dữ liệu Boolean khá là đơn giản:
bool myVal;
(Lưu ý: Nếu bạn khai báo mà không gán giá trị cho nó tương tự như biến myVal
mình khai báo ở trên thì giá trị mặc định gán cho biến đó là false).
- Mình có thể gán lại giá trị mới cho biến trên bằng cách dùng phương pháp phủ định. Đối với phương pháp này, nếu giá trị hiện tại là false thì giá trị mới của biến đó sẽ là true và ngược lại. Bạn có thể tham khảo phần code bên dưới:
myVal = !myVal;
- Ngoài ra, kiểu Boolean còn được thể hiện thông qua các câu lệnh if-else nữa đi kèm với nó là hai toán tử: ||, &&. Mình hãy xem xét ví dụ bên dưới như sau:
if (myVal && !myOtherVal){
// thực thi các câu lệnh ở đây....
}
- Trong câu lệnh điều kiện trên , nếu như biến myVal
của chúng ta có giá trị là true và một biến khác tên là myOtherVal
có giá trị là false thì chương trình sẽ nhảy vào bên trong cặp {} để thực thi các câu lệnh bên trong cặp {} đó.
2. Code demo:
- Mình có làm 1 clip cho phần demo này, nếu bạn thích xem và theo dõi trực tiếp thì hãy xem video bên dưới nha! Còn không thì bạn cứ tiếp tục đọc tiếp bài viết phía dưới:
- Tiếp theo là mình sẽ khởi tạo 1 Smart Contract đơn giản để tìm hiểu cách khai báo và sử dụng kiểu dữ liệu Boolean trong ngôn ngữ Solidity nhé! Đầu tiên là bạn bật Remix Editor Online lên và tạo 1 file Solidity tên là BooleanExample.sol
.
- Bạn có thể đọc thêm về hướng dẫn sử dụng Remix và lập trình Smart contract đầu tiên ở bài viết bên dưới nhé!
- Trước tiên, chúng ta sẽ khai báo version Solidity mà mình sử dụng đó chính là 0.8.1 và bạn lưu ý mình nhớ khai báo dòng đầu tiên vào mỗi file Solidity của chúng ta nhé! Nếu không có dòng đó thì chương trình chúng ta sẽ warning và không thể compile được Smart contract.
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1;
contract BooleanExample {
bool public myVal;
}
- Mình sẽ khai báo 1 biến public có kiểu dữ liệu Boolean tên là myVal
để tương tác. Sau đó, mình sẽ Compile, Deploy contract của chúng ta để thử trường hợp đầu tiên là giá trị mặc định có phải là false hay không.
- Sau khi deploy thành công,bạn nhấn vào nút myVal trên UI sẽ hiển thị ra gía trị hiện tại của biến myVal
là false.
Tiếp đó, mình sẽ tạo thêm 2 function nữa như sau:
- setMyBool: Mình sẽ input đầu vào giá trị true hoặc false bất kỳ để set giá trị mới cho biến
myVal
. - negateMyBool: Mình sẽ thực hiện phương pháp phủ định để gán giá trị mới cho biến của chúng ta.
contract BooleanExample {
bool public myVal;
function setMyBool(bool _value) public {
myVal = _value;
}
function negateMyBool() public {
myVal = !myVal;
}
}
- Sau đó, mình sẽ xoá contract cũ và Compile, Deploy contract mới của chúng ta.
- Mình sẽ test thử function setMyBool đầu tiên. Trước tiên là mình nhập vào text input giá trị true rồi nhấn vào nút setMyBool để thực thi function này. Sau đó, mình sẽ kiểm tra lại giá trị của biến myVal
thì lúc này giá trị mới của biến đó là true.
- Tiếp theo, mình sẽ thử luôn function negateMyBool. Sau khi nhấn vào nút đó mình kiểm tra lại giá trị mới của biến myVal
thì giá trị mới được set lại là false.
Tổng kết
Và đó là toàn bộ phần tìm hiểu cơ bản về kiểu dữ liệu Boolean, còn rất nhiều bài viết hay về Blockchain trên Blog 200Lab Education bạn nhớ xem thêm các bài viết khác nữa nhé!
Tùng Đường
Sao bạn có thể bước chân lên sân khấu, khi còn chẳng có sức kéo bản thân ra khỏi giường hả homie?
follow me :
Bài viết liên quan
Web2 là gì? Web3 là gì? So sánh Web 2.0 & Web 3.0
Sep 25, 2023 • 10 min read
DeFi là gì? Tìm hiểu về Tài Chính Phi Tập Trung
Sep 08, 2023 • 13 min read
STO là gì? Kiến thức cơ bản về Security Token Offering
Sep 08, 2023 • 15 min read
Ví Bitcoin là gì? 9 ví Bitcoin hàng đầu bạn cần biết
Sep 02, 2023 • 11 min read
Blockchain là gì? Ưu & nhược điểm của các ứng dụng Blockchain
Aug 23, 2023 • 17 min read
DAPP LÀ GÌ? DAPP HAY NHƯNG CÓ HOÀN HẢO
Apr 06, 2023 • 8 min read