루아 기능
루아에서, 함수는 추상적 인 문장과 표현의 주요 방법이다. 모두가 특별한 작업을 처리하는 데 사용될 수 있으며, 또한 어떤 값을 계산하는데 사용될 수있다.
루아는 쉽게 전달 된 매개 변수는 프로그램의 콘솔에 인쇄 될 수있다 인쇄 () 함수로 그들을 호출 할 수 있습니다, 많은 내장 된 기능을 제공합니다.
루아 기능 두 가지 목적이 있습니다 :
- 1. 함수 호출 문로서 사용되는 이러한 경우에, 할당 된 태스크를 완료;
- 2. 계산 함수가 할당 표현으로 이용되는 경우에 값을 반환한다.
함수 정의
다음과 같은 형식으로 정의 루아 프로그래밍 언어 기능 :
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end
해상도 :
- optional_function_scope : 사용자가 기능을 설정할 필요가있는 경우이 매개 변수는 선택 기능이 전역 함수 또는 로컬 함수를 개발하는 것 인, 파라미터의 끝 부분 함수 키워드 지방을 사용하여 전역 함수해야한다 설정되지 않는다.
- FUNCTION_NAME : 함수 이름을 지정합니다.
- 인수 1, 인수 2, argument3 ..., argumentn : 함수 매개 변수는 쉼표로 구분하여 여러 개의 매개 변수, 매개 변수없이도를 작동 할 수 있습니다.
- FUNCTION_BODY : 함수의 바디는 기능 블록 코드의 명령문이 수행 될 필요가있다.
- result_params_comma_separated : 함수 반환 값은 루아 언어 기능은 여러 값을 쉼표로 구분하여 각각을 반환 할 수 있습니다.
예
다음의예에서는, 최대 함수 ()를정의하는 두 값의 크기를 비교하기 위해 사용 NUM1, NUM2를 파라미터 및 최대 값을 반환
--[[ 函数返回两个值的最大值 --]] function max(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- 调用函数 print("两值比较最大值为 ",max(10,4)) print("两值比较最大值为 ",max(5,6))
상기 코드의 결과로서 실행된다 :
两值比较最大值为 10 两值比较最大值为 6
루아 우리는 기능, 다음의 예에 전달되는 매개 변수로 작동 할 수 있습니다 :
myprint = function(param) print("这是打印函数 - ##",param,"##") end function add(num1,num2,functionPrint) result = num1 + num2 -- 调用传递的函数参数 functionPrint(result) end myprint(10) -- myprint 函数作为参数传递 add(2,5,myprint)
상기 코드의 결과로서 실행된다 :
这是打印函数 - ## 10 ## 这是打印函数 - ## 7 ##
여러 반환 값
루아 기능은 (일치하는 문자열을 반환 nil을하지있을 경우) 일치하는 문자열 "첨자의 시작과 끝"를 반환 string.find, 여러 결과 값을 반환 할 수 있습니다.
> s, e = string.find("www.w3big.com", "w3big") > print(s, e) 5 10
루아 함수는 반환 후 같은 여러 값을 반환 할 수 있습니다 목록의 목록을 반환하는 가치가있다 :
function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end print(maximum({8,10,23,12,5}))
상기 코드의 결과로서 실행된다 :
23 3
Variable 매개 변수
루아 함수 가변 인자를받을 수 있고, 3 점 함수 파라미터리스트 (...)을 사용하여 유사한 C 언어는 가변 파라미터로하는 함수이다.
테이블 루아 함수 파라미터 ARG, #arg 전달 파라미터의 수를 나타낸다했다.
예를 들어, 몇 가지 수치의 평균을 계산한다 :
function average(...) result = 0 local arg={...} for i,v in ipairs(arg) do result = result + v end print("总共传入 " .. #arg .. " 个数") return result/#arg end print("平均值为",average(10,5,3,4,5,6))
상기 코드의 결과로서 실행된다 :
总共传入 6 个数 平均值为 5.5