Bước vào thế giới lập trình, hẳn ai cũng sẽ thắc mắc Function là gì? Bài viết này sẽ giúp bạn làm rõ khái niệm này, đồng thời trình bày một số loại hàm cơ bản.
Mục lục
Function là gì?
Function (Hàm) là một tập hợp những đoạn mã dùng để thực hiện một nhiệm vụ nào đó. Nó có thể được gọi và tái sử dụng nhiều lần. Bạn có thể chuyển thông tin vào một hàm. Đồng thời, nó cũng có thể gửi trả thông tin trở lại. Nhiều ngôn ngữ lập trình có các hàm dựng sẵn mà người dùng chỉ cần lấy từ thư viện hàm. Ngoài ra, bạn cũng có thể tự tạo ra các hàm theo mục đích của riêng mình.
Cơ chế hoạt động của hàm có thể được giải thích một cách đơn giản như sau:
- Các hàm sẽ lần lượt được đọc theo thứ tự từ trên xuống dưới.
- Khi bạn gọi một hàm, chương trình sẽ tạm dừng ở đoạn đang chạy và tiến hành thực thi hàm.
- Khi hàm thực hiện xong, chương trình tiếp tục chạy ở nơi nó đang tạm dừng.
- Nếu hàm trả về một giá trị, giá trị đó chỉ dùng được khi bạn gọi xong hàm.
Có nhiều cách khác nhau để viết hàm. Cú pháp chính xác sẽ phụ thuộc vào ngôn ngữ lập trình mà bạn đang sử dụng. Chẳng hạn, cú pháp của Python sẽ hoàn toàn khác với cú pháp của JavaScript. Do đó, bạn cần ghi nhớ cú pháp để viết hàm được chính xác.
Các loại hàm trong lập trình
Tùy thuộc vào mỗi ngôn ngữ, mà ta có thể có cách phân loại hàm khác nhau. Chẳng hạn, trong Python có 3 loại hàm là: hàm có sẵn, hàm do người dùng viết và hàm nặc danh (hay hàm Lambda).
Để thống nhất, chúng ta sẽ dựa trên cách viết hàm để phân thành ba loại như sau:
1. Hàm Void
Đây đơn giản là loại hàm không yêu cầu hoặc trả về giá trị nào cả. Hàm Void được sử dụng để hoàn thành một tập hợp các hướng dẫn.
Thông thường người ta sẽ đặt tên hàm theo chức năng của nó. Cách làm này sẽ giúp việc quản lý hàm và kiểm tra mã dễ dàng hơn.
Lấy ví dụ, chúng ta viết một hàm đặt tên là helloFunction. Mục đích của hàm là xuất dòng chữ “Hello World” ra màn hình. Đây là một trong những bài tập cơ bản nhất mà ai cũng từng làm khi mới học lập trình.
Dưới đây là hàm helloFunction được viết theo ngôn ngữ Python:
Giải thích:
- Từ khóa def là cú pháp dùng để tạo hàm trong Python.
- Sau def là tên của hàm. Cụ thể là helloFunction.
- Sau tên hàm là dấu ngoặc “()” nhưng bên trong không có nội dung gì cả. Điều này cho thấy đây là một hàm void.
- Những gì bạn muốn hàm thực hiện sẽ nằm ở dòng tiếp theo, sau dấu “:”.
2. Hàm yêu cầu giá trị đầu vào
Các hàm Void rất đơn giản, nhưng chúng cũng có hạn chế. Lý do là vì chúng hoàn toàn không thay đổi bất cứ điều gì. Do đó, một cách để ta có thể tăng tính hữu dụng của hàm là đưa cho nó các giá trị cụ thể để xử lý.
Dưới đây là hàm helloFunction có giá trị đầu vào được viết theo ngôn ngữ Python:
Giải thích:
- Khác với hàm Void, dấu ngoặc “()” sau tên hàm đã có nội dung. Đây chính là những giá trị bắt buộc phải có khi gọi hàm. Cụ thể, newPhrase là một biến cần được nạp vào hàm để chạy.
- Khi gọi hàm helloFunction, ta cần chuyển thông tin được yêu cầu bằng cách đặt nó vào giữa các dấu ngoặc “()”.
3. Hàm trả về một giá trị đầu ra
Loại hàm cuối cùng là loại trả về dữ liệu khi chạy xong. Điều này đặc biệt hữu ích khi bạn muốn thay đổi dữ liệu trước khi sử dụng. Chẳng hạn, bạn cần đổi từ dặm sang mét để tính toán, thì bạn cần viết ra một hàm để chuyển đổi trước.
Dưới đây là hàm addFunction trả giá trị đầu ra được viết theo ngôn ngữ Python:
Giải thích:
- Hàm yêu cầu đầu vào là hai số nguyên a và b. Biến a và biến b được đặt trong dấu ngoặc “()” nhưng được phân tách bằng dấu phẩy.
- Sau khi thực hiện xong, hàm sẽ trả về giá trị là tổng của a và b.
- Từ khóa return là cú pháp để yêu cầu hàm trả về dữ liệu cuối cùng. Trong trường hợp này là “a + b”. Đây chính là tổng của a và b.
Lưu ý về Function là gì?
Một điều thú vị về hàm là nó có thể gọi đến các hàm khác. Thậm chí, một hàm có thể tự gọi chính mình (trường hợp này gọi là đệ quy). Tuy nhiên, nếu bạn lạm dụng điều này có thể sẽ khiến cho chương trình trở nên phức tạp hơn. Do đó, bạn đừng nên tạo nhiều hàm có nội dung rắc rối, phụ thuộc vào nhiều hàm khác.
Như đã nói ở trên, mỗi khi một hàm được gọi, chương trình sẽ tạm dừng. Điều này có nghĩa là chương trình đang được nạp vào bộ nhớ. Nếu bạn gọi thêm một số hàm mà không chạy xong, nghĩa là bạn dùng nhiều bộ nhớ hơn. Nếu bạn không cẩn thận, chương trình có thể vượt khỏi vòng kiểm soát và báo lỗi.
Tóm lại, Function là một nội dung quan trọng trong bất kỳ ngôn ngữ lập trình nào. Hy vọng qua bài viết bạn có thể hiểu được Function là gì, từ đó có cách để sử dụng nó tốt hơn.
Got It Vietnam – Tham khảo: Makeuseof.com