Menu
CoddyTech

Tham số vị trí tùy chọn

Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 72 trên 94.

Tham số vị trí tùy chọn trong Dart cho phép bạn tạo các hàm có một số tham số là tùy chọn. Bạn định nghĩa chúng bằng cách đặt tham số bên trong dấu ngoặc vuông [].

Tạo một hàm có các tham số vị trí tùy chọn:

void greet(String name, [String? greeting]) {
  if (greeting != null) {
    print('$greeting, $name!');
  } else {
    print('Hello, $name!');
  }
}

void main() {
  greet('Dart');
  greet('Dart', 'Welcome');
}

Sau khi chạy đoạn code trên, đầu ra sẽ là:

Hello, Dart!
Welcome, Dart!

Bạn có thể có nhiều tham số tùy chọn:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

void main() {
  print(calculateTotal(5));
  print(calculateTotal(5, 20));
  print(calculateTotal(5, 20, 5));
}

Sau khi chạy đoạn code trên, đầu ra sẽ là:

52
102
105
challenge icon

Thử thách

Người mới

Trong thử thách này, bạn sẽ luyện cách dùng tham số vị trí tùy chọn (optional positional parameters) trong các hàm (function) Dart. Tham số vị trí tùy chọn cho phép bạn tạo hàm có một số tham số không bắt buộc.

Hãy hoàn thành hàm greet bên dưới. Hàm này nhận tham số name bắt buộc và tham số title tùy chọn. Nếu có title, hàm sẽ trả về lời chào gồm cả title và name. Nếu không có title, hàm chỉ dùng name.

Đầu ra mong đợi:

Hello, John!
Hello, Dr. Smith!

Tự làm thử

void main() {
  // Các biến (variable) này đã được định nghĩa sẵn cho bạn
  String person1 = "John";
  String person2 = "Smith";
  String title = "Dr.";
  
  // Gọi hàm (function) greet chỉ với tên
  print(greet(person1));
  
  // Gọi hàm greet với cả tên và title
  print(greet(person2, title));
}

// TODO: Hoàn thiện hàm greet với tham số (parameter) title không bắt buộc
// Tham số title cần là tham số không bắt buộc (dùng dấu ngoặc vuông [])
String greet(String name) {
  // Nếu có title, trả về "Hello, {title} {name}!"
  // Nếu không có title, trả về "Hello, {name}!"
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch Dart online