2014-09-04 3 views
4

강하게 입력 된 세계에서 왔고 일부 루아 코드를 작성하려고합니다. 어떤 유형의 것들이 문서화되어야합니까? 루아 원주민들은 무엇을하나요? Hungarian notation? 다른 것? 예를 들어루아에서 사용 된 문서화 방식은 무엇입니까?

:

local insert = function(what, where, offset) 

그것은 우리가 여기에 문자열이나 테이블에 대해 얘기하고 있는지 한 눈에 알 것은 불가능하다.

내가 다른

local sInsert = function(sWhat, sWhere, nOffset) 

또는

-- string what, string where, number offset, return string 
local insert = function(what, where, offset) 

또는 뭔가를해야합니까?

지역 변수는 어떻게됩니까? 표 항목 (예 : someThing.someProperty)은 어떻게됩니까?

+0

코드 스타일은 보통 고용주가 지시합니다. –

+0

IDE가 컨텐츠 지원 및 팝 오버 도움말을 지원하는 방식으로 소스를 문서화하십시오. –

+0

문제가 복잡하다는 것은 매개 변수가 종종 다형성이라는 점입니다. 테이블 키는'nil'을 제외한 모든 타입이 될 수 있습니다. 테이블 값은 모든 유형이 될 수 있습니다. 일부 함수는 특정 매개 변수에 대해 테이블이나 함수를 지원합니다 .... 'where'는 잠재적 인 경우입니다. –

답변

3

커뮤니티 (또는 특정 커뮤니티?)에서 루아 스타일에 대한 생각과 의견을 참조하려면 LuaStyleGuide을 읽어보십시오.

강제 서식에 가장 근접한 서식은 LuaDoc이 사용하는 형식입니다. 이는 LuaFileSystem과 같은 높은 프로필 프로젝트에서 사용되는 상당히 유명한 문서 생성기이기 때문입니다.

0

루아에는 7 가지 유형이 있습니다. street_address, request_method : 문자열 같은 소리

  • 아무것도, 문자열이어야합니다;

    는 여기에 몇 가지 규칙이 (죄송 그들 중 일부는 분명 약간 들리는 것)입니다. 당신이 확실하지 않은 경우 _name을 추가 할 수 있습니다 그것 (또는하게 다른 접미사 분명히 그것은 실질적인이다) : mass, temperature, percentage : 숫자 같은 소리 method_name

  • 뭐든지, 수 있어야한다. 의심스러운 경우 number, amount, coefficient 또는 number_of_children, user_id에 맞는 것을 추가하십시오. ni의 이름은 대개 숫자에 부여됩니다. 숫자가 양수 또는 자연수 여야하는 경우 함수 맨 위에 어설 션을 작성하십시오.
  • 부울 매개 변수는 형용사 (cold, dirty) 또는 is_<adjective> (is_wet, is_ready)입니다.
  • 동사와 비슷한 것으로 들리는 내용은 모두 기능 : consume, check이어야합니다. 추가 설명이 필요하면 _function, _callback 또는 _f을 추가 할 수 있습니다. update_function, post_callback. 단일 문자 f은 꽤 자주 함수를 나타냅니다. 일반적으로 함수 유형의 매개 변수가 하나만 있어야합니다 (마지막에 넣는 것이 좋습니다).
  • 컬렉션과 같은 소리를내는 것은 테이블이어야합니다 : children, words, dictionary. 일반적으로 사람들은 배열 형 테이블과 사전 형 테이블을 구별하지 않습니다. 두 테이블 모두 pairs으로 파싱 할 수 있기 때문입니다. 테이블이 배열임을 지정해야하는 경우 이름 끝에 _array 또는 _sequence을 추가 할 수 있습니다. 문자 t은 일반적으로 테이블을 의미합니다.
  • 코 루틴은 자주 사용되지 않습니다. 함수와 동일한 규칙을 따를 수 있으며, 이름에 _cor을 추가 할 수도 있습니다.
  • 임의의 값은 nil 일 수 있습니다.
    • 이 옵션 값의 경우, 함수의 상단에 초기화 :이 필수 값이 있다면, 주장을 options = options or {}
    • (또는 반환 오류) : assert(name, "The name is mandatory")
관련 문제