Latest web development tutorials

루아 기능

루아에서, 함수는 추상적 인 문장과 표현의 주요 방법이다. 모두가 특별한 작업을 처리하는 데 사용될 수 있으며, 또한 어떤 값을 계산하는데 사용될 수있다.

루아는 쉽게 전달 된 매개 변수는 프로그램의 콘솔에 인쇄 될 수있다 인쇄 () 함수로 그들을 호출 할 수 있습니다, 많은 내장 된 기능을 제공합니다.

루아 기능 두 가지 목적이 있습니다 :

  • 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