Contents
Chào mừng bạn đến với Fx Studio. Chúng ta tiếp tục với chuyến du lịch Dart Tour. Sau khi, bạn đã hoàn thành việc cài đặt môi trường cho Dart và thực thi được chương trình đầu tiên. Thì chúng ta sẽ bắt đầu viết code thôi. Chủ đề cho bài viết lần này là Biểu thức (Expressions).
Nếu mọi việc đã ổn rồi, thì …
Bắt đầu thôi!
Chuẩn bị
Về mặt công cụ editor thì khá đơn giản:
- TextEditor
- Visual Studio Code (nên dùng)
Hoặc bạn vào trang https://dartpad.dev/ để tiến hành code luôn. Khá là giống với Playground của Swift.
Về mặt kiến thức, bạn xem đây là bài đầu tiên với Dart. Chúng ta chỉ cần cài đặt được môi trường để thực thi chương trình Dart mà thôi. Nếu bạn chưa biết, thì có thể tham khảo link sau:
Comment Code
Comment hay Comment code dùng để vô hiệu hoá đi 1 hay nhiều dòng code trong file chương trình của bạn. Phần này sẽ không được biên dịch.
Dart cũng giống các ngôn ngữ khác với cú pháp của Comment.
- Comment 1 dòng hãy dùng
//
Ví dụ:
// Đây là một comment nhóe. Nó không phải câu lệnh nên sẽ không chạy được. Ahihi!
Ví dụ thêm nữa:
// Ta có 1 dòng // Ta có 2 dòng // Ta có thêm một dòng nữa
- Comment nhiều dòng hãy dùng
/* */
/* Hôm nay trời nhẹ lên cao Tôi buồn không hiểu vì sao tôi buồn ... */
Ngoài ra, Comment dùng để giải thích cho người đọc biết đoạn code của bạn có ý nghĩa là gì. Với kiểu Documentation Comments thì bạn sẽ dùng với cú pháp /** */
/// I am a documentation comment /// at your service. /** * Me, too! */
Dùng để mô tả về một API của bạn hay 1 function/class … Rất là khá thú vị khi bạn xem lại code của mình sau 1 thời gian mà vẫn hiểu được.
Đây thuộc dạng câu lệnh kinh điển trong giới lập trình.
Tool debug số một hiện nay.
Đây là lệnh đầu tiên mà bạn học, print
dùng để in kết quả ra ở Console. Xem ví dụ nhóe!
print('Ahihi!')
Xem kết quả sau khi thực thi nhóe!
Chương trình Dart cơ bản
Okay! Bây giờ, ta sẽ bắt đầu xem một chương trình Dart cơ bản là gì. Cùng nhau phân tích đoạn code sau:
// Define a function. void printInteger(int aNumber) { print('The number is $aNumber.'); // Print to console. } // This is where the app starts executing. void main() { var number = 42; // Declare and initialize a variable. printInteger(number); // Call a function. }
Trong đó:
//
là các comment mô tả ý nghĩa cho các function hay các dòng code cụ thểvoid
là một kiểu giá trị trả về của hàm. Ý nghĩa ở đây là không có gì trả vềint
là kiểu dữ liệu cơ bản. Dùng cho khai báo các biến/hằng/tham số …42
là một số hay là 1 giá trị số tự nhiên'....'
dùng để chưa 1 giá trị là chuỗi kí tự, đại diện cho kiểu dữ liệu String$variableName
(or${expression}
) : là các chuỗi nội suy. Nó dùng để chèn giá trị vào một String khác.main()
chương trình sẽ bắt đầu chạy tại đó. Quan trọng nhất!var
dùng để khai báo một biến số (loại có thể thay đổi được giá trị)
Xong rồi đấy, bạn chỉ cần bấm nút Run rồi xem kết quả nhóe!
Statements
Statements là câu lệnh, nó là một yêu cầu từ bạn nói để máy tính thực thi. Trong Dart, tất cả các câu lệnh sẽ được kết thức bằng dấu chấm phẩy ;
Nỗi kinh hoàng của iOS Developer rồi đây.
Ví dụ:
print('Ahuhu!');
Ngoài ra, một số câu lệnh sẽ kết thúc bằng dấu }
. Đó là các câu lệnh mang một khối lệnh bên trong nó. Ví dụ:
if (isOkay) { // I am okay! }
Expressions
Tiếp theo là biểu thức (Expressions). Nó không giống Statements (câu lệnh), nó sẽ không làm gì cả. Nghĩa là, một biểu thức là một giá trị hoặc một cái gì đó mà có thể tính toán được như một giá trị.
Ví dụ:
22 8 + 6 'Fx Studio' x + y
Giá trị ở đây có thể là số, text hay một số biến nào đó.
Toán tử toán học
Loại đơn giản
Đó là các em + - * / %
mà bạn dùng ngày qua tháng lại lâu nay. Ví dụ:
2 + 10 15 - 3 7 * 55 100 / 5
Ngoài ra, bạn có thể dùng cả toán tử trong một biểu thức để đưa vào một câu lệnh. Điển hình như với print
sau đây:
print(2+10);
Dart cũng cho phép bạn bỏ qua các khoảng trống trong một biểu thức với các toán tử toán học. Ví dụ:
2+10 2 + 10
Tuy nhiên, có khoảng trống vẫn hơn nhoé. Dễ đọc, dễ hiểu.
Decimal numbers
Gọi là số thập phân, thì ta cần chú ý 2 biểu thức kinh điển sau:
16 / 3
Kết quả sẽ là bằng 5
, đó là cho các ngôn ngữ khác. Với Dart, thì sẽ tính toán phép chia này ra số thập phân. Do đó, kết quả cuối cùng là 5.333333333333333
Để thực hiện chia lấy phần nguyên, thì bạn hãy dùng 16 ~/ 3
nhoé. Sử dụng ~/
là okay.
16 ~/ 3 // = 5
Chia lấy dư. À, nếu bạn thắc mắt chia lấy phần dư thì ra sao. Bạn có thể dùng toán tử truyền thống là %
để chia lấy phần dư. Ví dụ:
16 % 3 // = 1
Order of operations
Thứ tự thược hiện các toán tử trong một biểu thức toán học giống với độ ưu tiên phép tính. Tức là nhân chia trước. cộng trừ sau. Và ưu tiên dấu ( )
nữa.
print(1 + 2 * 3); // 7 print(((8000 / (5 * 10)) - 32) ~/ (29 % 5)); // 32
Cũng dễ thôi, không có gì xoắn não ở đây cả. Tuy nhiên, bạn sẽ biết rằng chúng ta còn nhiều toán tứ nữa, nhưng vì phạm vị bài viết thì mình sẽ không trình bày ở đây nhóe!
Hãy google để biết thêm.
Math functions
Dart cũng cung cấp cho bạn nhiều hàm toán học cơ bản. Chỉ cần import
thêm thư viện toán học của Dart vào thôi. Cú pháp đơn giản như sau:
import 'dart:math';
Bạn có thể dùng các hàm như sin
, cos
, sqrt
… hay các hằng số toán học như pi
. Các hàm so sánh như min
, max
. Nói chung cái gì bạn đã quen với toán học và các ngôn ngữ lập trình khác thì Dart cũng sẽ có.
Xem vài ví dụ cho vui mắt nhóe!
max(5, 10) // 10
min(-5, -10) // -10
sqrt(2) // 1.4142135623730951
sin(45 * pi / 180) // 0.7071067811865475
cos(135 * pi / 180) // -0.7071067811865475
Bạn vẫn có thể kết nhiều toán tử toán học trong cùng 1 biểu thức. EZ Game!
max(sqrt(2), pi / 2) // 1.5707963267948966
Tạm kết
- Tìm hiểu về các biểu thức (Expressions) cơ bản trong Dart
- Thành phần của một chương trình Dart cơ bản
- Sử dụng các câu lệnh, comment code, toán tử toán học, print …
Okay! Tới đây, mình xin kết thúc bài viết về Expressions trong series Dart Tour. Nếu có gì thắc mắc hay góp ý cho mình thì bạn có thể để lại bình luận hoặc gởi email theo trang Contact.
Cảm ơn bạn đã đọc bài viết này!
Related Posts:
Written by chuotfx
Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!
Leave a Reply Cancel reply
Fan page
Tags
Recent Posts
- Charles Proxy – Phần 1 : Giới thiệu, cài đặt và cấu hình
- Complete Concurrency với Swift 6
- 300 Bài code thiếu nhi bằng Python – Ebook
- Builder Pattern trong 10 phút
- Observer Pattern trong 10 phút
- Memento Pattern trong 10 phút
- Strategy Pattern trong 10 phút
- Automatic Reference Counting (ARC) trong 10 phút
- Autoresizing Masks trong 10 phút
- Regular Expression (Regex) trong Swift
You may also like:
Archives
- September 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (4)
- April 2024 (2)
- March 2024 (5)
- January 2024 (4)
- February 2023 (1)
- January 2023 (2)
- November 2022 (2)
- October 2022 (1)
- September 2022 (5)
- August 2022 (6)
- July 2022 (7)
- June 2022 (8)
- May 2022 (5)
- April 2022 (1)
- March 2022 (3)
- February 2022 (5)
- January 2022 (4)
- December 2021 (6)
- November 2021 (8)
- October 2021 (8)
- September 2021 (8)
- August 2021 (8)
- July 2021 (9)
- June 2021 (8)
- May 2021 (7)
- April 2021 (11)
- March 2021 (12)
- February 2021 (3)
- January 2021 (3)
- December 2020 (3)
- November 2020 (9)
- October 2020 (7)
- September 2020 (17)
- August 2020 (1)
- July 2020 (3)
- June 2020 (1)
- May 2020 (2)
- April 2020 (3)
- March 2020 (20)
- February 2020 (5)
- January 2020 (2)
- December 2019 (12)
- November 2019 (12)
- October 2019 (19)
- September 2019 (17)
- August 2019 (10)