Làm quen với Dart cơ bản (biến, hàm, class)

0 0 0

Người đăng: Coder Tập Sự

Theo Viblo Asia

Giới thiệu nhanh

Xin chào! Mình là Coder Tập Sự một người mới bắt đầu học lập trình di động. Từ hôm nay, mình sẽ ghi lại hành trình học Flutter từng ngày để vừa ghi nhớ kiến thức vừa để xem mình tiến bộ tới đâu. Vì mình chỉ mới bắt đầu tìm hiểu nên nếu có chỗ nào chưa chính xác hoặc còn thiếu sót, rất mong mọi người góp ý thêm để mình cải thiện. Mình rất trân trọng mọi lời nhận xét và chia sẻ kinh nghiệm từ các anh/chị và các bạn. Xin cảm ơn mọi người rất nhiều!

1. Mục tiêu hôm nay là gì?

  • Làm quen với ngôn ngữ Dart – nền tảng của Flutter
  • Hiểu cách khai báo biến, viết hàm, và tạo class
  • Thử viết một vài đoạn code đơn giản bằng DartPad

2. Bắt đầu

Biến và kiểu dữ liệu

Dart là ngôn ngữ kiểu tĩnh, tức là mỗi biến đều có kiểu dữ liệu cụ thể (giống như int, String, bool, double...).

👉️ Tuy nhiên, bạn không cần phải luôn viết rõ kiểu — Dart có thể tự đoán kiểu dựa vào giá trị ban đầu bạn gán, nhờ đó code ngắn gọn hơn.

// Khai báo biến với việc chỉ rõ kiểu dữ liệu
int age = 22;
String name = "Luân"; // Dart có thể tự động dự đoán kiểu dữ liệu nếu chúng ta khai báo bằng Var. Ví dụ như sau
var city = "Hà Nội"; // Dart hiểu đây là String
var score = 9.5; // Dart hiểu là double
var isStudent = true; // Dart hiểu là bool

❗️ Lưu ý: Khi bạn đã gán giá trị ban đầu, Dart sẽ không cho thay đổi kiểu của biến đó nữa.

Hàm trong Dart

Trong Dart chúng ta có thể khai báo hàm để có thể tái sử dụng logic một cách dễ dàng. Trong Dart, chúng ta có thể khai báo kiểu dữ liệu trả về của hàm, điều này giúp tránh lỗi và làm cho code dễ hiểu hơn.

Hàm trả về giá trị

Khi một hàm trả về một giá trị (như số, chuỗi, danh sách...), chúng ta cần ghi kiểu dữ liệu trả về phía trước tên hàm.

int sum(int a, int b) { return a + b;
} void main() { int result = sum(3, 5); print("Tổng: $result");
} Kết quả nhận được: Tổng: 8

Hàm không trả về giá trị (dùng void)

Nếu hàm chỉ thực hiện hành động mà không trả về gì, chúng ta dùng void.

void sayHello(String name) { print("Xin chào, $name!");
} void main() { sayHello("Luân");
} Kết quả nhận được: Xin chào, Luân!

Hàm viết ngắn gọn với cú pháp mũi tên (=>)

Nếu hàm chỉ có một câu lệnh duy nhất và trả về, chúng ta có thể viết gọn bằng cú pháp =>:

int square(int n) => n * n; void main() { print(square(4));
} Kết quả nhận được: 16

⚠️ Ghi nhớ:

  • Chúng ta nên luôn khai báo rõ kiểu trả về để tránh lỗi và rõ ràng dễ hiểu hơn
  • Dùng void khi không cần trả về gì
  • Dùng cú pháp ngắn => cho những hàm đơn giản

Class trong Dart

Dart hỗ trợ lập trình hướng đối tượng, tức là chúng ta có thể tạo class để mô tả các đối tượng như người, sản phẩm, v.v...

class Person { String name; int age; // Constructor Person(this.name, this.age); // Method void introduce() { print("Mình tên là $name, năm nay $age tuổi."); }
} void main() { Person p = Person("Luân", 22); p.introduce();
} Kết quả nhận lại: Mình tên là Luân, năm nay 22 tuổi.

Vấn đề đã gặp và cách xử lý

Dart áp dụng null safety — nghĩa là:

Biến không thể có giá trị null nếu chúng ta không khai báo rõ ràng là nó có thể null.

Ví dụ:

String name = "Luân";
name = null; // Error: The value 'null' can't be assigned to a variable of type 'String' because 'String' is not nullable.

Vậy làm sao để cho phép null?

Chúng ta có thể sử dụng dấu ? sau tên kiểu:

 String? name = "Luân"; print("Name: $name"); // Kết quả: Name: Luân name = null; print("Name: $name"); // Kết quả: Name: null

Tuy nhiên chúng ta cần cẩn thận khi sử dụng biến có thể null

Vì biến có thể null, nên chúng ta phải kiểm tra null trước khi dùng, hoặc dùng toán tử an toàn như ! hoặc ??. Ví dụ:

void hello(String? name) { print("Xin chào, ${name ?? "bạn"}!");
} void main() { hello(null); // Kết quả: Xin chào, bạn! hello("Luân"); // Kết quả: Xin chào, Luân!
}

Kết luận

Qua bài học ngày hôm nay mình nhận thấy Dart có cú pháp khá dễ hiểu và thân thiện. Ngày mai mình sẽ tiếp tục tìm hiểu flutter nữa có thể là bắt đầu làm quen với Flutter Widgets hoặc khởi tạo chút giao diện cơ bản đầu tiên nhỉ 😆😆😆

Lời cuối bài xin cảm ơn mọi người đã đọc đến đây! Nếu mọi người cũng đang tìm hiểu Flutter thì mình chúc các bạn kiên trì và vững bước mỗi ngày. Hẹn gặp lại mọi người ở bài viết ngày mai nhé.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 298

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

1 1 354

- vừa được xem lúc

Dart Cheat Sheet - Full bộ "bỏ túi" các syntax trong ngôn ngữ Dart

Dart là một ngôn ngữ mới dùng cho cả Mobile và Web với Flutter Framework, thậm chí dùng cho Backend. Để giúp mọi người dễ dàng nắm bắt ngôn ngữ này hơn, 200lab Education đã tổng hợp thành bộ "bí tịch" dưới đây để tra cứu nhanh, tăng tốc phát triển phần mềm.

0 0 53

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 2: StatefulWidget vs StatelessWidget. Khi nào thì cần sử dụng cái nào?

Lời mở đầu. Ở bài trước, chúng ta đã dừng lại ở một kết thúc mở.

0 0 101

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 4: Lột trần InheritedWidget

Lời mở đầu. Trong đoạn kết của phần 2, chúng ta đã đối mặt với 1 bài toán: Làm thế nào để truyền data từ một widget cha nào đó xuống thẳng widget chắt mà không phải sử dụng constructor để truyền xuống

0 0 70

- vừa được xem lúc

Chinh phục RxDart Flutter trong 3 nốt nhạc. Nốt thứ nhất: Stream và giải thích các thuật ngữ

Lời mở đầu. Mình viết series này với mục đích chia sẻ kiến thức về RxDart trong Flutter.

0 0 80