TRANG CHỦ
CHUYÊN MỤC
HỌC HỎI
TAG
ABOUT
Tìm kiếm
Lập trình games với Love2D - Chương 3 - Chức năng
2023-10-20 15:58:33
Love2D
Học Lập Trình Lua
178 lượt xem
0 bình luận
Chức năng (hàm - function) là một tập hợp các đoạn mã được sử dụng để thực hiện nhiệm vụ nào đó. Hàm có thể được gọi, tái sử dụng nhiều lần trong quá trình lập trình. Bạn cũng có thể chuyển thông tin cần thiết vào một ```function```. Đồng thời, có thể gửi trả lại thông tin. Với các hàm, chúng ta có thể lưu trữ các đoạn mã. Điều này cho phép tôi thực thi mã này bất cứ khi nào tôi muốn. Các hàm còn được gọi là ```methods```. Có 2 cách để tạo hàm: ```lua example = function () print("Hello World!") end ``` và cách phổ biến hơn: ```lua function example() print("Hello World!") end ``` Bạn bắt đầu bằng cách viết từ khóa ```function```, theo sau là tên của hàm. Hàm là một loại biến, do đó, các quy tắc tương tự sẽ được áp dụng như khi bạn đặt tên cho một biến. Tên của hàm này là ```example```. Sau tên chúng ta đặt dấu ngoặc đơn ```()```. Bây giờ chúng ta có thể bắt đầu nhập mã mà chúng ta muốn đặt vào trong hàm của mình. Trong trường hợp này, tôi đưa vào ```print("Hello World!")```. Khi hoàn tất, bạn đóng hàm bằng ```end```. Lưu ý rằng khi chạy mã, bạn sẽ không thấy thông báo "Hello World!" trong bảng đầu ra ```console``` của bạn, điều này là do chúng ta vẫn chưa thực thi hàm. Tôi thêm một chức năng như thế này: ```lua example() --Output: "Hello World!" ``` Bạn chỉ cần gõ tên hàm, theo sau là dấu ngoặc đơn. Đây là những gì tôi gọi là *lệnh gọi hàm* . ### Tham số - Parameters Hãy nhìn vào mã này: ```lua function sayNumber(num) print("I like the number " .. num) end sayNumber(15) sayNumber(2) sayNumber(44) sayNumber(100) print(num) --Output: --"I like the number 15" --"I like the number 2" --"I like the number 44" --"I like the number 100" --nil ``` Bên trong dấu ngoặc đơn của hàm, chúng ta có thể đặt cái mà chúng ta gọi là tham số . Tham số là các biến tạm thời chỉ tồn tại bên trong hàm. Trong trường hợp này chúng ta đặt tham số ```num```. Và bây giờ chúng ta có thể sử dụng ```num``` như bất kỳ biến nào khác. Chúng ta thực thi hàm của mình nhiều lần, mỗi lần với một đối số khác nhau. Và do đó, mỗi lần chúng ta in ra cùng một câu nhưng với một số khác nhau. Số chúng ta đặt trong dấu ngoặc đơn được gọi là đối số. Vì vậy, trong lệnh gọi hàm đầu tiên, chúng ta chuyển đối số 15 cho tham số ```num```. Ở cuối mã, tôi in ```num```, bên ngoài chức năng của chúng ta. Điều này mang lại cho tôi ```nil```. Điều này có nghĩa là ```num``` không có giá trị. Nó không phải là một số, một chuỗi hay một hàm. Không có gì. Bởi vì như tôi đã nói trước đó, tham số là các biến chỉ có bên trong hàm. ### Trả về giá trị - Return Ví dụ, các hàm có thể trả về một giá trị mà chúng ta có thể lưu trữ bên trong một biến. Bạn có thể trả về một giá trị bằng cách sử dụng ```return``` từ khóa. ```lua function giveMeFive() return 5 end a = giveMeFive() print(a) --Output: 5 ``` ```a``` có được giá trị mà ```giveMeFive``` trả về. Một ví dụ khác: ```lua -- Nhiều tham số và đối số được phân tách bằng dấu phẩy function sum(a, b) return a + b end print(sum(200, 95)) --Output: --295 ``` Hàm của chúng ta ```sum``` trả về tổng của ```a``` và ```b```. Chúng ta không nhất thiết phải đặt giá trị mà hàm trả về vào một biến trước tiên. Chúng ta có thể in trực tiếp với giá trị đặt trong đó. ### Cách sử dụng Thường thì bạn muốn thực thi mã nhất định ở nhiều vị trí. Thay vì sao chép mã đó mỗi lần bạn muốn sử dụng, chúng ta chỉ cần thêm lệnh gọi hàm. Và nếu muốn thay đổi hành vi của hàm này, chúng ta chỉ cần thay đổi đối số nó ở một vị trí. Bằng cách này, chúng ta tránh lặp lại mã. Đừng **lặp lại chính mình**, đó là một trong những nguyên tắc lập trình quan trọng nhất. ### Bản tóm tắt Các hàm có thể lưu trữ mã mà chúng ta có thể thực thi bất cứ lúc nào. Chúng ta gọi một hàm bằng cách viết tên của nó theo sau là dấu ngoặc đơn. Chúng ta có thể đặt các giá trị (đối số) bên trong các dấu ngoặc đơn này. Các giá trị này được truyền vào các tham số của hàm, là các biến tạm thời chỉ tồn tại trong hàm. Hàm cũng có thể trả về một giá trị. Các hàm loại bỏ sự lặp lại và đó là một điều tốt trong lập trình. ------ [Trước](/learn/detail?learnId=2) | [Mục lục](/learn/search?keyword=Lập%20trình%20games%20với%20Love2D) | [Kế tiếp](/learn/detail?learnId=4)
Gợi ý bài học liên quan
Awesome Love2D
Lập trình games với Love2D - Visual Studio Code
Lập trình games với Love2D - Chương 24
Lập trình games với Love2D - Chương 23
Lập trình games với Love2D - Chương 22