모듈:콜 어사트
Module| 이 모듈은 일반 사용 가능한 것으로 평가되었습니다.성숙한 형태에 이르렀고 비교적 버그가 없으며 적절한 장소에서 사용할 수 있는 것으로 생각됩니다.새로운 사용자가 학습할 수 있는 옵션으로 도움말 페이지 및 기타 위키피디아 리소스를 언급할 준비가 되어 있습니다.서버의 부하와 불량 출력을 줄이려면 시행착오를 반복하는 편집이 아니라 샌드박스 테스트를 통해 개선해야 합니다. |
| 이 Lua 모듈은 시스템메시지 및 약 229,000페이지에 사용됩니다. 이를 변경하면 Wikipedia 사용자 인터페이스가 즉시 변경될 수 있습니다. 중대한 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경을 테스트해야 합니다.테스트한 변경은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.토크 페이지에서 변경 사항을 논의한 후 구현하십시오. |
이 메타모듈은 함수 callAssert를 제공합니다.이 함수는 지정된 함수가 0 또는 false를 반환할 경우 오류를 발생시킴으로써 오류 체크를 단순화합니다.이것은 삽입 함수 아사트와 비슷하지만, 이와는 달리 callAssert 자체는 함수를 호출하고 반환값은 체크됩니다.이를 통해 오류 메시지에 함수 이름과 인수 값을 포함할 수 있습니다.
사용.
로컬 callAssert = required('모듈:Call Assert') 로컬 결과 1, 결과 2 등= call Assert(func, 'funcName', ...) callAssert콜func(...)는 최초로 반환된 값이 true로 평가되는지 여부를 확인합니다.이 경우 반환된 모든 값이 반환됩니다.그렇지 않으면 다음 형식의 메시지와 함께 오류가 발생합니다.'funcName(argument_values) failed'.
현지의 기능. 포장하다(...) 돌아가다 {...}, 선택한다.('#', ...) 끝. 현지의 기능. 맵 어레이(기능하다, 배열, 세어보세요) 현지의 결과 = {} 위해서 i = 1, 세어보세요 또는 #배열 하다 결과[i] = 기능하다(배열[i]) 끝. 돌아가다 결과 끝. 현지의 기능. 견적을 내다(가치) 한다면 유형(가치) == '문자열 그리고나서 돌아가다 (string.gsub(string.format(%q', 가치), '\\n', '\\n')) -- 바깥쪽 괄호는 gsub에서 반환된 두 번째 값을 삭제합니다. 끝. 현지의 스트레이트 = 스트링(가치) 한다면 유형(가치) == '테이블' 그리고. 스트레이트 ~= '테이블' 그리고나서 돌아가다 '{' .. 스트레이트 .. '}' 끝. 돌아가다 스트레이트 끝. 현지의 기능. 콜 어사트(기능하다, 기능명, ...) 현지의 결과, result Count(결과수) = 포장하다(기능하다(...)) 한다면 것은 아니다. 결과[1] 그리고나서 현지의 args, args 카운트 = 포장하다(...) args = 맵 어레이(견적을 내다, args, args 카운트) 현지의 메세지 = 음.스트링.포맷( '%s(%s)' 실패', 기능명, table.concat(args, ', ') ) 에러(메세지, 2) 끝. 돌아가다 개봉하다(결과, 1, result Count(결과수)) 끝. 돌아가다 콜 어사트