3.3.1 Hàm là gì ?

Từ “hàm” có thể không phải là xa lạ với bạn. Chắc chắn bạn đã từng nghe nó nhiều lần trước đây, thậm chí trong hoàn cảnh không liên quan gì đến lập trình. Có lẽ bạn đã gặp từ này trong bài học toán. Bạn có nhớ sin không, đó là một trong nhiều ví dụ về hàm.

Chúng ta có thể ví một hàm như một loại hộp (kiểu như hộp phép thuật :D) có thể làm điều gì đó có ích cho chúng ta, ví dụ: để tính giá trị gì đó hoặc thực hiện một số hành động nào đó. Tính giá trị gì đó có nghĩa là hàm có một kết quả, hực hiện một số hành động nào đó có nghĩa là hàm có một hiệu ứng.

Nói cách khác, một hàm chỉ là một phần code riêng biệt mà có thể được sử dụng tại (gần như) bất cứ thời điểm nào để tính toán hoặc làm một việc gì đó, hoặc cả hai. Một hàm được xác định theo tên của nó. Tên của một hàm cũng phải tuân theo những quy định tương tự như tên biến. Ngoài ra, chúng ta không thể có một biến và một hàm có cùng tên.

Mỗi hàm có thể thay đổi các hành vi riêng của nó bằng cách sử dụng các tham số. Các tham số có thể ảnh hưởng đến những gì được tính toán hoặc những gì được thực hiện bên trong hàm. Ngoài ra, một hàm có thể thay đổi giá trị của các tham số nếu cần thiết. Khi bạn muốn một hàm cụ thể nào đó thực hiện các hành động và/hoặc các phép tính toán, bạn cần phải gọi nó (tiếng Anh gọi là invoke). Lệnh gọi hàm phải xác định tên của hàm được gọi (luôn luôn và bắt buộc), các tham số mà hàm cần sử dụng (nếu có) và cách sử dụng kết quả trả về bởi hàm (nếu có).

Nói tóm lại, chúng ta có thể chia hàm thành 2 nhóm:

  • các hàm được viết bởi ai đó (không phải bạn), nó đã có sẵn trong môi trường phát triển, đôi khi được gọi là các hàm được định nghĩa sẵn hoặc thư viện
  • các hàm được viết bởi bạn

Bạn có thể sử dụng cả hai loại đó một cách dễ dàng.