API 문서 함수 매개변수를 해석하는 방법은 무엇인가요?

API 문서에 함수 인터페이스의 구문을 해석하는 표준이 있으며, 있다면 어떻게 정의되어 있나요?

다음은 항목의 색상을 변경하는 방법에 대한 예제로, 포토샵용 자바스크립트 스크립팅 가이드의 'fillColor' 함수에 대한 예제입니다:

fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])

괄호의 의미는 무엇이며 괄호 안에 쉼표가 있는 이유는 무엇인가요? 다음 예제 호출과 어떤 관련이 있나요?

myPath.fillPath(myNewColor)

myPath.fillPath(mynewColor, {
    mode: RGB,
    opacity: .5
})
질문에 대한 의견 (6)
해결책

**그렇다면 API 문서는 왜 저와 같은 초보자/해커/디자이너를 혼란스럽게 하는 방식으로 작성되어 있을까요?

실제로 그렇게 작성된 것은 아닙니다. API 문서 전반에 걸쳐 사용하기 쉽지 않은 것 같다는 데 동의합니다. 그러나 오래된 '사람' 스타일의 구문 규칙에서 최신 API/네임스페이스 규칙에 이르기까지 많은 부분이 교차합니다.

일반적으로 API로 작업하는 사람의 유형은 개발에 대한 배경 지식이 있거나 최소한 '파워 유저'입니다. 이러한 유형의 사용자는 이러한 구문 규칙에 익숙하기 때문에 새로운 구문 규칙을 만드는 것보다 API 문서를 따르는 것이 더 합리적입니다.

**API 문서를 읽는 방법을 알려주는 신비한 문서가 어딘가에 있나요?

실제로 표준 또는 RFC인 슈퍼세크릿신택스 문서는 어디에도 없지만, 널리 사용되는 약 30년 된 UNIX용 파일(http://cm.bell-labs.com/cm/cs/who/dmr/manintro.html)이 있습니다.

이에 대한 몇 가지 예(그리고 질문에 대한 답변)는:

밑줄이 그어진 단어는 리터럴로 간주되며 표시된 그대로 입력됩니다.

인수를 둘러싼 대괄호([])는 인수가 선택 사항임을 나타냅니다.

타원 ...은 이전 인수 프로토타입이 반복될 수 있음을 표시하는 데 사용됩니다.

빼기 기호로 시작하는 인수는 파일 이름이 나타날 수 있는 위치에 나타나더라도 일종의 플래그 인수를 의미하는 것으로 받아들여지는 경우가 많습니다.

파이썬](http://docs.python.org/3.3/library/functions.html), 매뉴얼 페이지, 자바스크립트 라이브러리(하이차트) 등 거의 모든 프로그래밍 관련 문서에서 이러한 유형의 구문 규칙을 사용합니다.


Adobe API에서 예제 분석

fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])

fillPath()(함수)는 선택적 인수인fillColor, mode, opacity, preserveTransparency, feathe, wholePath또는antiAlias를 받습니다. fillPath()를 호출하면 해당 매개변수를 하나부터 모두까지 전달할 수 있습니다. 선택적 [] 안에 있는 쉼표는 이 매개변수가 다른 매개변수와 함께 사용되는 경우 쉼표로 구분해야 한다는 의미입니다. (물론 상식적이지만, VB와 같은 일부 언어에서는 누락된 매개 변수를 적절히 구분하기 위해 쉼표가 명시적으로 필요한 경우도 있습니다!). 문서에 대한 링크가 없기 때문에(그리고 Adobe의 스크립팅 페이지에서도 찾을 수 없습니다) Adobe API가 어떤 형식을 기대하는지 알 수 있는 방법이 없습니다. 그러나 대부분 문서의 상단에 그 문서에서 사용되는 규칙을 설명하는 설명이 있을 것입니다.

따라서 이 함수는 여러 가지 방법으로 사용될 수 있습니다:

fillPath() //Nothing passed
fillPath(#000000,RGB) // Black, in RGB mode
fillPath(#000000,RGB,50) // Black, in RGB mode, half opacity

//Now it gets tricky, this might ALSO be acceptable:
fillPath(#000000,50) // Black, no mode, half opacity

//OR
fillPath(#000000,,50) // Black, no mode, half opacity

다시 말씀드리지만, 일반적으로 API/프로그래밍과 관련된 모든 문서에는 몇 가지 표준이 있습니다. 그러나 각 문서마다 미묘한 차이가 있을 수 있습니다. 파워 유저 또는 개발자는 사용하려는 문서/프레임워크/라이브러리를 읽고 이해할 수 있어야 합니다.

해설 (1)

동적으로 입력된 언어에 대한 API 문서는 신중하게 작성되지 않으면 큰 의미가 없을 수 있으므로, 아무리 노련한 개발자라도 이해하기 어려울 수 있으니 너무 걱정하지 마세요.

괄호 등에 대해서는 일반적으로 리터럴 예제 외에 정확한 사용법을 설명하는 코드 규칙 섹션이 있지만, EBNF, 정규식, 철도 다이어그램은 거의 보편화되어 있으므로 대부분의 표기법을 이해하려면 익숙해져야 합니다.

해설 (0)

괄호는 속성이 선택 사항임을 의미합니다. 단, n번째 순위에 속성을 설정하려면 앞의 속성에 대한 속성을 선언하거나 정의되지 않은 것으로 선언해야 합니다:

fillPath() //good
fillPath ( someFillColor ) //good
fillPath ( someFillColor, mode ) //good
fillPath ( undefined, mode ) //good
fillPath ( mode ) //bad
fillPath ( undefined ) //really bad

Loic http://www.loicaigon.com

해설 (2)

내가 만약 이 같은 질문을 뒤로를 귈이예요 abc. 누가 나한테 확장됨 배커스-나우르 표기법.

공감하는 같도다라고 프로그래밍 잠재적으로 무한한 결과를 만드는 데 사용할 수 있습니다. 예를 들어, 가능한 모든 경우를 위한 설명서 표시할 수 없습니다. 그러나 일단 한번 공통 기본 구문을 사용하여 좋은 사례 도움됐네 내가 읽을 수 있어 자신의 코드를 만들 수 있습니다.

해설 (0)