Menu
CoddyTech

Hàm của riêng bạn

Thuộc phần Tạo tính tương tác trong hành trình Flutter của Coddy. Bài học 6 trên 34.

Khi hai nút làm cùng một việc, bạn có thể viết code một lần và đặt tên cho nó. Đó là một hàm (function):

void sayHello() {
  print('Hello!');
}

sayHello là tên hàm, code bên trong dấu ngoặc nhọn là việc hàm thực hiện, còn void có nghĩa là hàm không trả về gì. Viết hàm riêng, bên ngoài class MyApp, chẳng hạn ngay bên dưới main.

Để chạy hàm, hãy viết tên hàm kèm dấu ngoặc đơn: sayHello();. Để gán hàm cho một nút, hãy viết tên hàm mà không có dấu ngoặc đơn:

ElevatedButton(onPressed: sayHello, child: Text('Hi'))

Khi không có dấu ngoặc đơn, bạn truyền chính hàm cho nút, và nút sẽ chạy hàm mỗi lần được nhấn. Nếu có dấu ngoặc đơn, như onPressed: sayHello(), Dart sẽ chạy hàm ngay lập tức rồi truyền kết quả của hàm cho nút. Kết quả đó là không có gì, nên code sẽ không biên dịch.

challenge icon

Thử thách

Dễ

Cả hai nút đều cần in ra Hello!. Hãy viết hàm sayHello để in ra Hello!, rồi gán hàm đó cho nút Say hello và nút nổi có biểu tượng bàn tay vẫy.

Tự làm thử

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              print('Hello!');
            },
            child: Text('Say hello'),
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          child: Icon(Icons.waving_hand),
        ),
      ),
    );
  }
}
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 Tạo tính tương tác

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