제 스크립트에서는 다른 모듈에서 "가져 오기"기능을 수행합니다. 따라서 스크립트 시작 부분에 다음과 유사한 코드가 있습니다.루아에서 많은 이름 가져 오기
local some_function = assert(require("utils").some_function)
local another_func = assert(require("utils").another_func)
local yet_another = assert(require("utils").yet_another)
local and_another = assert(require("utils").and_another)
그러나이 코드는 꽤 읽을 수 없습니다.
합니다 (assert()
는 함수 이름에 맞춤법 오류를 방지 할 수있다.) 나는, 내가 쉽게 내 자신의 함수를 작성할 수 있다는 것을 알고 require_names()
말을하고,에 위의 코드를 설정
:
local some_function, another_func, yet_another, and_another
= require_names("utils", { "some_function", "another_func", "yet_another", "and_another" })
이 모양은 보다 많이입니다. 여전히 최적이 아닙니다.이 코드에는 중복성이 있습니다. 함수의 이름이 두 번 반복됩니다.
이중화 문제가 발생하지 않도록 require_names()
을 쓸 수있는 방법이 있습니까?
또는 다른 방법으로 가독성 문제를 해결하기위한 아이디어가 있습니까?
은 당신이 할 수없는, 당신이 유틸 모듈에서 무엇의 일부만을 원하는 경우에
'setmetatable (_G, {__index = "유틸"을 요구})'당신은 단지 하나 개의 모듈을 사용할 때 –
에고의 솔루션만큼 괜찮습니다. 해당 솔루션을 사용하면 두 모듈을 동시에 상속받을 수 없습니다. – lhf
루아 5.2에서'_ENV = require "utils"'할 수 있으며 모든 전역 변수는'utils'에서 해결됩니다. – lhf