누에고치 표기 법
6256 단어 데이터 구조규범.협의스 크 립 트 언어누에고치 법
이해 하기 쉽 고 쓰기 쉬 운 데이터 구조 표현 방법 은 실 을 뽑 아 고 치 를 벗 기 는 것 처럼 다 차원 적 인 누에고치 와 같은 복잡 한 대상 을 층 층 이 벗 겨 내 고 데이터 모델 링, 인터페이스 설명, 코드 주석 등에 자주 사용 된다.
다음은 실례 적 인 방식 으로 규칙 을 설명 하고 자 바스 크 립 트 와 C + + 두 가지 실현 을 참고 로 제공 합 니 다.
개체
구조 체 (structure) 또는 클래스 (class) 라 고도 부른다.
하나의 대상 Customer, 두 필드 (또는 속성) id 와 name 이 있 으 면
Customer: {id, name}
왼쪽 은 형식 명 (type name) 으로 대문자 로 시작 합 니 다.오른쪽 은 유형 설명 이 고 괄호 로 대상 유형 을 설명 하 며 형식 은
{field1, field2, ...}
이 며 괄호 안 은 각 속성 명 으로 소문 자로 시작한다.Javascript 에서 이 대상 은 다음 과 같 습 니 다:
var customer = {id: 100, name: "john"};
C + + 에 서 는 이렇게 구 조 를 정의 합 니 다.
struct Customer
{
int id;
string name;
};
대상 에 복잡 한 유형의 속성 을 포함 할 수 있 습 니 다. 속성 명 에 접두사 '%' 를 사용 하여 구조 체 나 사전 을 표시 하고 접두사 '@' 로 배열 을 표시 합 니 다. 예 를 들 어:
Customer: {id, name, %address, @orders}
Address: {country, city}
Order: {id, total, @lines=[OrderLine]}
OrderLine: {itemId, qty, price}
Customer 대상 의 속성 address 는 하나의 구조 체 로 접두사 '%' 로 표시 합 니 다.속성 orders 는 하나의 배열 입 니 다. 접두사 '@' 으로 표시 합 니 다.이 속성 address 와 orders 는 형식 명 을 정의 하지 않 았 습 니 다. 이것 은 형식 명 과 속성 명 이 같은 이름, 즉 속성 address 의 유형 은 address 이 고 orders 의 유형 은 Orders 입 니 다.형식 Orders 가 정의 되 지 않 았 지만 단수 형식 Order 형식 을 정 의 했 습 니 다. 이것 은 Orders 가 Order 인 배열 을 포함 하고 있 습 니 다.완전 하 게 쓰 려 면 이렇게 설명해 야 합 니 다.
Customer: {id, name, %address=Address, @orders=[Order]}
Order 를 괄호 안에 넣 으 면 속성 orders 가 Order 형식의 배열 임 을 나타 낸다.Order 형식의 속성 lines 설명
@lines=[OrderLine]
Order Line 의 배열 임 을 나타 낸다.
속성 은 절약 할 수 있 고, 절약 값 도 지정 할 수 있 습 니 다. 예 를 들 어:
Address: {country?=CN, city?}
이것 은 속성 country 가 없 을 수 있 음 을 나타 내 고 없 으 면 값 으로 'CN' 을 표시 합 니 다.
사전 (dictionary)
그것 은 집합 입 니 다. 그 중 하 나 는 키 쌍 (key - value pair) 입 니 다.해시 표 (hash table) 나 맵 표 (map) 라 고도 합 니 다.
괄호 로 사전 을 설명 하 는데 형식 은
{key => value}
이 고 그 중에서 value 는 기본 유형 이나 복잡 한 유형 일 수 있 습 니 다.사전 형식의 이름 은 복수 형식 을 사용 하거나 "List", "Map" 으로 끝내 야 합 니 다. 예 를 들 어:Customers: { id => name }
위의 정 의 는 customers 는 하나의 사전 형식 으로 각 항목 의 메 인 키 는 id 필드 를 표시 하고 값 은 name 필드 (기본 형식) 를 표시 합 니 다.
Javascript 의 사전 형식 은 다음 과 같 습 니 다:
var customers = {100: "john", 101: "bella"};
주의: 대상 유형 과 형식 은 같 지만 의 미 는 완전히 다르다.그것 은 대상 의 집합 이 고 이름 도 복수 형식 이다.
C + + 에서 일반적으로 이렇게 정의 합 니 다.
typedef map<int, string> Customers;
사전 의 모든 항목 의 값 도 하나의 대상 일 수 있 습 니 다.
Customers: {id=>Customer}
Customer: {id, name}
병합 가능:
Customers: { id=> {id, name} }
Javascript 에서 사용:
var customers = {
100: {id: 100, name: "john"},
101: {id: 101, name: "bella"}
};
C + + 에서 종 류 를 이렇게 정의 할 수 있 습 니 다.
struct Customer
{
int id;
string name;
};
typedef map<int, Customer> Customers;
배열 (배열)
순서 표 나 목록 이 라 고도 부른다.
중 괄호 로 배열 을 설명 합 니 다. 형식 은
[ element ]
입 니 다.이름 을 지 을 때 복수 형식 을 사용 하거나 'List', 'Arr' 로 끝내 야 합 니 다.간단 한 목록 IdList 를 표시 하려 면 모든 요 소 는 id 입 니 다.
IdList: [id]
Customers 는 Customer 의 배열 로 다음 과 같이 표시 할 수 있 습 니 다.
Customers: [Customer]
Customer: {id, name}
병합:
Customers: [ {id, name} ]
자바 script 에서 배열 형식의 변수:
var customers = [ {id: 100, name: "john"}, {id: 101, name: "bella"} ]
C + + 에서 형식 은 다음 과 같이 정 의 됩 니 다.
struct Customer
{
int id;
string name;
};
typedef vector<Customer> Customers;
Customer 를 정의 하고 복수 형식 Customers 를 정의 하지 않 으 면 기본 Customers 는 배열 입 니 다.반대로 복수 형식 customers / customer List / customer Map / customerArr 를 정의 하면 customer 는 정의 하지 않 고 전자 집합 에서 의 값 요소 임 을 기본 으로 설정 할 수 있 습 니 다.
때로는 대상 유형 을 배열 로 대체 할 수 있 습 니 다. 예 를 들 어 Customer 는 두 가지 요소 가 있 습 니 다. 첫 번 째 는 id 이 고 두 번 째 는 name 이 며 다음 과 같이 표시 할 수 있 습 니 다.
Customer: [id, name]
배열 로 대상 을 정의 할 때 형식 은
[ field1, field2, ... ]
이 고 적어도 두 개의 필드 가 있어 야 한다.Javascript 의 예:
var customer1 = [100, "john"];
var customer2 = [101, "bella"];
C + + 에 서 는 일반적으로 이렇게 디자인 하지 않 습 니 다. 굳이 사용 하지 않 으 면 Variant 와 같은 일반적인 유형 을 사용 할 수 있 습 니 다.
typedef Vector<Variant> Customer; // [id, name]
Customer customer1 = {Variant(100), Variant("john")};
기본 형식 설명
복잡 한 유형 은 최종 적 으로 모든 속성 으로 분해 되 어야 한다. 기본 유형 이 든 기본 유형 으로 분 해 된 복잡 한 유형 이 든.
속성 을 정의 할 때 속성 명 을 통 해 유형 을 암시 하거나 접미사 식별 자 를 통 해 표시 해 야 합 니 다.규칙 은 다음 과 같 습 니 다.
디자인 에 따라 실 현 될 때 상기 유형 을 사용 하 는 프로 그래 밍 언어 가 지원 하 는 실제 유형 에 대응 해 야 한다.
예 를 들 어 다음 과 같은 정의:
Customer: {id, name, age&, score#, balance@, specialPrice, createTm, isNew}
Customer 각 속성의 기본 유형 을 간단명료 하 게 정 의 했 습 니 다. C + + 로 유형 을 정의 할 때 이 럴 수 있 습 니 다.
class Money {};
struct Customer
{
int id;
string name;
int age;
double score;
Money balance;
Money specialPrice;
time_t createTm;
bool isNew;
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.