Bài 9 : Hàm trong Lua

Bài 9 : Hàm trong Lua

Lua – Chức năng  Trang trướcTrang tiếp theo   Hàm là một nhóm các câu lệnh cùng thực hiện một tác […]

Learn more »

Lua – Chức năng


 Trang trướcTrang tiếp theo  

Hàm là một nhóm các câu lệnh cùng thực hiện một tác vụ. Bạn có thể chia mã của mình thành các chức năng riêng biệt. Cách bạn phân chia mã của mình giữa các chức năng khác nhau là tùy thuộc vào bạn, nhưng về mặt logic, sự phân chia thường là duy nhất, vì vậy mỗi chức năng thực hiện một nhiệm vụ cụ thể.

Ngôn ngữ Lua cung cấp nhiều phương thức tích hợp sẵn mà chương trình của bạn có thể gọi. Ví dụ, phương thức print () để in đối số được truyền dưới dạng đầu vào trong bảng điều khiển.

Một hàm được biết đến với nhiều tên khác nhau như một phương thức hoặc một quy trình con hoặc một thủ tục, v.v.

Xác định một chức năng

Dạng tổng quát của định nghĩa phương thức trong ngôn ngữ lập trình Lua như sau:

optional_function_scope function function_name( argument1, argument2, argument3........,  argumentn) function_body return result_params_comma_separated end 

Định nghĩa phương thức trong ngôn ngữ lập trình Lua bao gồm tiêu đề phương thức và thân phương thức . Đây là tất cả các phần của một phương pháp –

  • Phạm vi chức năng tùy chọn – Bạn có thể sử dụng từ khóa cục bộ để giới hạn phạm vi của hàm hoặc bỏ qua phần phạm vi, điều này sẽ làm cho nó trở thành một hàm toàn cục.
  • Tên hàm – Đây là tên thực của hàm. Tên hàm và danh sách tham số cùng nhau tạo thành chữ ký hàm.
  • Đối số – Một đối số giống như một trình giữ chỗ. Khi một hàm được gọi, bạn truyền một giá trị cho đối số. Giá trị này được gọi là tham số hoặc đối số thực tế. Danh sách tham số đề cập đến kiểu, thứ tự và số lượng các đối số của một phương thức. Đối số là tùy chọn; nghĩa là, một phương thức có thể không chứa đối số.
  • Phần thân của hàm – Phần thân của phương thức chứa một tập hợp các câu lệnh xác định chức năng của phương thức.
  • Return – Trong Lua, có thể trả về nhiều giá trị bằng cách theo sau từ khóa return với các giá trị trả về được phân tách bằng dấu phẩy.

Thí dụ

Sau đây là mã nguồn của một hàm có tên là max () . Hàm này nhận hai tham số num1 và num2 và trả về giá trị lớn nhất giữa hai tham số:

--[[ function returning the max between two numbers --]] function max(num1, num2)     if (num1 > num2) then       result = num1;    else       result = num2;    end     return result;  end

Đối số hàm

Nếu một hàm sử dụng các đối số, nó phải khai báo các biến chấp nhận giá trị của các đối số. Các biến này được gọi là tham số chính thức của hàm.

Các tham số chính thức hoạt động giống như các biến cục bộ khác bên trong hàm và được tạo khi nhập vào hàm và bị hủy khi thoát.

Gọi một hàm

Trong khi tạo một hàm Lua, bạn đưa ra định nghĩa về những gì hàm phải làm. Để sử dụng một phương thức, bạn sẽ phải gọi hàm đó để thực hiện tác vụ đã xác định.

Khi một chương trình gọi một chức năng, điều khiển chương trình sẽ được chuyển sang chức năng được gọi. Một hàm được gọi thực hiện tác vụ đã định nghĩa và khi câu lệnh trả về của nó được thực thi hoặc khi kết thúc hàm của nó, nó sẽ trả lại quyền điều khiển chương trình trở lại chương trình chính.

Để gọi một phương thức, bạn chỉ cần truyền các tham số bắt buộc cùng với tên phương thức và nếu phương thức trả về một giá trị, thì bạn có thể lưu trữ giá trị trả về. Ví dụ –Bản thử trực tiếp

function max(num1, num2)     if (num1 > num2) then       result = num1;    else       result = num2;    end     return result;  end  -- calling a function print("The maximum of the two numbers is ",max(10,4)) print("The maximum of the two numbers is ",max(5,6))

Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.

The maximum of the two numbers is 	10 The maximum of the two numbers is 	6 

Chức năng Gán và Chuyển

Trong Lua, chúng ta có thể gán hàm cho các biến và cũng có thể chuyển chúng dưới dạng tham số của một hàm khác. Đây là một ví dụ đơn giản để gán và truyền một hàm dưới dạng tham số trong Lua.Bản thử trực tiếp

myprint = function(param)    print("This is my print function -   ##",param,"##") end  function add(num1,num2,functionPrint)    result = num1 + num2    functionPrint(result) end  myprint(10) add(2,5,myprint)

Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.

This is my print function -   ##	10	## This is my print function -   ##	7	## 

Hàm với đối số biến

Có thể tạo các hàm với các đối số biến trong Lua bằng cách sử dụng ‘…’ làm tham số của nó. Chúng ta có thể nắm được điều này bằng cách xem một ví dụ trong đó hàm sẽ trả về giá trị trung bình và nó có thể nhận các đối số thay đổi.Bản thử trực tiếp

function average(...)    result = 0    local arg = {...}    for i,v in ipairs(arg) do       result = result + v    end    return result/#arg end  print("The average is",average(10,5,3,4,5,6))

Khi chúng tôi chạy đoạn mã trên, chúng tôi sẽ nhận được kết quả sau.

The average is	5.5


Lượt xem : 234

Integrations
Users

Share Profile

Anyone at KeenThemes can view
Anyone with link can edit

Give Award

Anyone at KeenThemes can view
Anyone with link can edit

Report User

Let us know why you’re reporing this person
Don't worry, your report is completely anonymous; the person you're
reporting will not be informed that you've submitted it