Một chức năng trong lập trình là gì?

Một chức năng trong lập trình là gì?

Bạn có thường thấy mình đang sao chép và dán mã của mình để sử dụng lại trong các phần khác nhau trong chương trình của mình không?





Nếu vậy, bạn có thể muốn xem xét việc sử dụng các hàm. Hàm là một tính năng rất mạnh của ngôn ngữ lập trình. Chúng có thể làm cho mã hiệu quả hơn, dễ đọc hơn và thanh lịch hơn.





Chức năng là gì?

Hàm là một khối mã thực hiện một tác vụ. Nó có thể được gọi và sử dụng lại nhiều lần. Bạn có thể chuyển thông tin cho một chức năng và nó có thể gửi 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à bạn có thể truy cập trong thư viện của chúng, nhưng bạn cũng có thể tạo các hàm của riêng mình.





Khi bạn gọi một hàm, chương trình sẽ tạm dừng chương trình hiện tại và thực thi hàm. Hàm sẽ được đọc từ trên xuống dưới. Khi chức năng hoàn tất, chương trình tiếp tục chạy ở nơi nó đã tạm dừng. Nếu hàm trả về một giá trị, giá trị đó sẽ được sử dụng ở nơi hàm được gọi.

Làm thế nào để bạn viết một 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ữ mà bạn đang lập trình. Chúng tôi sẽ hiển thị các ví dụ bằng Python, JavaScript và C ++ để chứng minh một loạt các cú pháp lập trình.



Liên quan: Tại sao ngôn ngữ lập trình không thể tồn tại nếu không có chức năng

Chức năng Void

Loại hàm đầu tiên mà chúng ta sẽ xem xét là một hàm void. Điều này đơn giản có nghĩa là hàm không trả về giá trị. Các hàm Void được sử dụng để hoàn thành một tập hợp các hướng dẫn. Trong các ví dụ này, hàm chúng tôi đã viết được gọi là xin chào . Mục đích của hàm là xuất ra 'Hello World'.





MẸO: đưa ra tên các hàm giải thích chức năng của chúng. Sẽ dễ dàng hơn để quản lý các chức năng và đọc mã khi chương trình của bạn trở nên phức tạp hơn.

Python





def helloFunction():
print('Hello World')
helloFunction()

Từ khóa phản đối được sử dụng trong Python để định nghĩa và tạo một hàm. Tiếp theo, là tên của hàm. Các hướng dẫn trong hàm sẽ hiển thị trên dòng tiếp theo sau dấu hai chấm. Khoảng trắng quan trọng trong Python, vì vậy hãy đảm bảo thụt lề tất cả mã mà bạn muốn hàm của mình chạy. Trong ví dụ trên, hàm chạy một dòng mã.

Đôi mắt tinh tường của bạn có thể nhận thấy rằng in() cũng là một hàm, nhưng nó được gọi khác với hàm của chúng ta. Hãy giữ vững suy nghĩ đó ngay bây giờ, chúng ta sẽ khám phá các tham số của hàm sau.

JavaScript

đồng bộ ảnh facebook với danh bạ android
function helloFunction(){
alert('Hello World!');
}
helloFunction();

Trong JavaScript, từ khóa hàm số được sử dụng để tạo các chức năng. Tiếp theo, chúng ta có tên của hàm. Bất kỳ mã nào nằm giữa các dấu ngoặc nhọn sẽ được chạy khi hàm được gọi.

Khoảng trắng không quan trọng trong JavaScript, nhưng theo thói quen, bạn nên thụt lề mã trong hàm. Thụt lề làm cho mã dễ đọc hơn, điều này rất quan trọng khi các chương trình của bạn trở nên phức tạp hơn.

Lưu ý: Rất thích in() trong ví dụ trước đó, báo động() cũng là một chức năng.

C ++

#include
using namespace std;
void helloFunction(){
cout << 'Hello World!';
}
int main(){
helloFunction();
return 0;
}

Các hàm được tạo khác nhau trong C ++. Thay vì một từ khóa để xác định một hàm, từ đầu tiên mô tả loại dữ liệu mà hàm sẽ trả về. Trong trường hợp này, hàm của chúng ta không trả về bất kỳ dữ liệu nào, vì vậy dữ liệu bị vô hiệu. Tiếp theo, chúng ta có tên của hàm. Tương tự như JavaScript, tất cả mã giữa các dấu ngoặc nhọn được chạy khi hàm được gọi. Cũng tương tự như JavaScript, khoảng trắng không ảnh hưởng đến chức năng nhưng là một thực tiễn tốt.

Bạn có phát hiện ra một chức năng khác trong mã C ++ không? Đúng, chủ chốt() là một chức năng. Khi bạn thực thi một chương trình C ++, bạn sẽ tự động gọi hàm chính. Khi chức năng chính được hoàn thành thành công, nó trả về 0 khi nó thoát khỏi chương trình để báo hiệu không có lỗi nào khi chạy chương trình.

Các chức năng yêu cầu giá trị

Các hàm rỗng sẽ rất tuyệt nếu bạn thấy rằng mình đang viết đi viết lại cùng một đoạn mã. Nhưng chúng có thể hạn chế. Chúng tĩnh và không thay đổi. Họ luôn hoàn thành các hướng dẫn giống nhau. Một cách chúng ta có thể tăng tính hữu dụng của chúng là truyền các giá trị khác nhau cho hàm.

Bạn sẽ nhận thấy rằng dấu ngoặc vuông theo sau tên của tất cả các hàm của chúng ta. Trong dấu ngoặc, chúng ta có thể khai báo rằng dữ liệu là cần thiết để chạy hàm của chúng ta. Sau đó, chúng ta có thể sử dụng dữ liệu được truyền cho hàm của chúng ta trong hàm. Hãy xem lại các ví dụ trước, nhưng lần này chuyển cụm từ mà chúng ta muốn xuất ra.

Python

def helloFunction(newPhrase):
print(newPhrase)
helloFunction('Our new phrase')

Bây giờ, giữa các dấu ngoặc, hàm của chúng ta tuyên bố rằng nó cần một biến để chạy. Chúng tôi đã đặt tên cho biến newPhrase và bây giờ có thể sử dụng nó trong chức năng của chúng tôi. Khi chúng ta gọi hàm, chúng 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. Những thay đổi tương tự đã được thực hiện trong JavaScript.

JavaScript

function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction('Our new phrase');

C ++

làm thế nào để tìm ngày của một bài báo
#include
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction('Our new Phrase');
return 0;
}

Hàm C ++ của chúng tôi yêu cầu thêm một chút thông tin. Chúng tôi biết rằng hàm của bạn muốn dữ liệu chuỗi, nhưng điều đó không đủ tốt cho C ++. Khi bạn tạo hàm, bạn phải chỉ định loại dữ liệu mà hàm của bạn yêu cầu. Nếu bạn không gửi đúng loại dữ liệu, hàm sẽ tạo ra lỗi.

Điều này có vẻ hơi khó chịu, nhưng những ngôn ngữ nghiêm ngặt thường có thể giúp bạn đỡ đau đầu. Nếu bạn viết một hàm trong JavaScript yêu cầu một số nguyên, nhưng số được gửi dưới dạng một chuỗi, nó có thể tạo ra một lỗi rất khó theo dõi.

Liên quan: 5 ngôn ngữ lập trình chức năng bạn nên biết

Các chức năng trả lại giá trị

Khả năng chức năng cuối cùng mà chúng tôi sẽ đề cập là trả về dữ liệu. Điều này đặc biệt có giá trị khi bạn muốn thay đổi dữ liệu trước khi sử dụng. Mặc dù bạn có thể viết nội tuyến đó, nhưng nếu bạn sử dụng các phép tính giống nhau nhiều lần, chẳng hạn như chuyển đổi hệ đo lường Anh sang hệ mét, thì việc viết nó dưới dạng một hàm sẽ có ý nghĩa hơn. Ví dụ của chúng tôi sẽ đơn giản hơn. Hàm của chúng ta sẽ yêu cầu hai số nguyên và sẽ trả về tổng.

Python

def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))

Trong ví dụ này, hàm của chúng ta yêu cầu hai biến thay vì một. Chúng tôi chỉ ra điều đó bằng cách phân tách các tên biến của chúng tôi bằng dấu phẩy. Từ khóa trở lại yêu cầu hàm trả về dữ liệu sau, trong trường hợp này là 2 + 4 hoặc 6. Chúng tôi gọi hàm bên trong in() hàm số.

Khi chương trình của chúng tôi đến dòng đó, nó sẽ tạm dừng, chạy chức năng của chúng tôi và sau đó tiếp tục như thể addFunction (2, 4) thực ra chỉ là giá trị trả về 6.

JavaScript

Mã JavaScript rất giống với mã Python. Sự khác biệt chính là chức năng được gọi trong một cảnh báo.

function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));

C ++

#include
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}

Mã C ++ chạy tương tự, nhưng như thường lệ, yêu cầu thêm một chút thông tin. Đầu tiên, chúng ta phải nói rằng hàm của chúng ta sẽ trả về loại dữ liệu nào. Bạn sẽ thấy rằng vô hiệu đã được thay đổi thành NS . Điều này có nghĩa là thay vì trả về không có dữ liệu, hàm của chúng ta sẽ trả về một số nguyên. Ngoài ra, mã tương tự như mã mà chúng ta đã khám phá.

Quản lý các chức năng của bạn

Một điều thú vị về các hàm là các hàm có thể gọi các hàm khác. Họ thậm chí có thể tự gọi mình! Nhưng với sức mạnh to lớn đi kèm với trách nhiệm lớn. Đừng điên cuồng tạo mã với các chức năng gọi các chức năng khác mà gọi thêm các chức năng khác.

Như đã đề cập, mỗi khi một hàm được gọi, chương trình sẽ tạm dừng trong khi chạy hàm. Điều này có nghĩa là chương trình đang được lưu giữ trong bộ nhớ hoạt động. Nếu bạn gọi thêm một số chức năng mà không hoàn thành chúng, bạn đang sử dụng nhiều bộ nhớ hoạt động hơn. Nếu bạn không cẩn thận, chương trình của bạn có thể vượt khỏi tầm tay.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách giữ cho mã của bạn sạch sẽ bằng cách đóng gói đối tượng

Các biến toàn cục có vẻ đơn giản, nhưng chúng thường là nguyên nhân của rất nhiều lỗi. Đây là cách sắp xếp hợp lý mã của bạn với tính năng đóng gói.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Lập trình
  • Lập trình chức năng
Giới thiệu về tác giả Jennifer Seaton(21 bài báo đã xuất bản)

J. Seaton là một nhà văn khoa học chuyên nghiên cứu về các chủ đề phức tạp. Cô có bằng Tiến sĩ tại Đại học Saskatchewan; nghiên cứu của cô tập trung vào việc sử dụng học tập dựa trên trò chơi để tăng mức độ tương tác trực tuyến của sinh viên. Khi cô ấy không làm việc, bạn sẽ thấy cô ấy đang đọc sách, chơi trò chơi điện tử hoặc làm vườn.

Xem thêm từ Jennifer Seaton

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký