Hàm trong ngôn ngữ Lua- Lập trình game di động với Corona
29/10/2014
FacebookTwitterDeliciousStumbleuponDiggMyspaceLinkedInZingmegovnlinkhay


Trong bài viết dưới đây, Mobipro sẽ tiếp tục giới thiệu những kiến thức về hàm và cách sử dụng chúng với ngôn ngữ lập trình Lua.   ngon-ngu-lap-trinh-lua-lap-trinh-game-voi-corona-bai-2-phan-1-LUA Hàm là gì ? Đơn giản, hàm là một khối các câu lệnh cùng thực hiện một nhiệm vụ nào đó, được đặt tên riêng để có thể dễ dàng "gọi" khi cần. Hàm có thể có hoặc không có kết quả trả về. Mục đích lớn nhất của hàm là khả năng tái sử dụng lại mã nguồn. Giả sử nếu bạn cần tính toán một bài toán nào đó với rất nhiều câu lệnh dài dòng và phức tạp, và bạn phải thực hiện các câu lệnh này nhiều lần. Thay vì mỗi lần đều phải gõ lại những câu lệnh đó, bạn có thể tạo ra một hàm chứa những câu lệnh này và đặt tên riêng cho nó. Mỗi khi cần tính toán, bạn chỉ cần gọi hàm và sử dụng. Định nghĩa hàm Để định nghĩa một hàm trong Lua, bạn có thể sử dụng cú pháp sau: optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end Trong đó: + function_scope: Phạm vi hoạt động của hàm. Hàm cục bộ (local) hay toàn cục (global). Khi không có function_scope, hàm sẽ là toàn cục. + function_name: Tên của hàm. + arguments: các tham số truyền vào. + function_body: nội dung code +return result: giá trị trả về. Ví dụ:  function TimSoMax(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- calling a function print("So max la: ",TimSoMax(10,4)) print("So max la: ",TimSoMax(5,6)) Kết quả: lua function1 Gán và truyền hàm thông qua biến Trong Lua cho phép gán hàm vào biến và truyền nó vào một hàm khác. Ví dụ: function TimSoMax(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end function MyPrint(a,b,max) print("So max la: ",max(a,b)) end local c = TimSoMax MyPrint(10,6,c) Kết quả: lua function2 Hàm sử dụng tham số truyền vào với “...” Trong nhiều trường hợp, khi không xác định được số lượng tham số truyền vào một hàm, ký hiệu "..." có thể sẽ giúp bạn trong trường hợp này. Ví dụ: function TinhTrungBinh(...) result = 0 local arg={...} for index,value in ipairs(arg) do result = result + value end return result/table.getn(arg) end print("The average is",TinhTrungBinh(10,5,3,4,5,6)) Kết quả: lua function3 Chúc các bạn tìm được những thông tin bổ ích từ bài viết của Mobipro và hẹn gặp lại trong phần sau với đầy đủ các kiến thức về ngôn ngữ Lua hơn nữa !

Dương Linh