2017-11-30 3 views
0

나는 클래스를 % 접미사로 명명하는 관례가 있는데, 이는 상위 클래스와 인스턴스를 구별하는 데 도움이되기 때문입니다. 내가 구조체를 필요로 할 때 다른 손에 라켓에 구조체의 명명 규칙이 있습니까?


(define ingredient% 
    (class object% 
    (init-field name taste price color) 
    (super-new))) 

(define (total-price ingredients) 
    (for/sum (ingredient ingredients) 
    ;; here "ingredient" stands for the instance, not the class ingredient% 
    (get-field price ingredient))) 

은 내가 구조체 이름과 충돌하지 않는 인스턴스의 이름을 찾기 위해 사투를 벌인거야. § :

그래서 나도 구조체에 대한 접미사를 사용하기 시작. 기호는 내 키보드에서 쉽게 액세스 할 수 있습니다. 아쉽게도 표준 QWERTY 기호가 아닐 수도 있으므로 나중에 $으로 바꿀 것입니다.

(struct ingredient§ (name taste price color)) 
(define ingredient (ingredient§ "Carrot" 'good 1.0 'orange)) 
(displayln (format "I'm making a ~a cake." (ingredient§-name ingredient))) 

이 무엇이든간에 심볼, 나는 구조체에 대한 접미사를 사용하는 대신 변수에서 임의 모음을 제거 할 필요없이 명확 인스턴스 이름을 선택하는 당신은 무료로 유지 것을 찾을 수 있습니다.

또 다른 옵션은 %을 구조체의 접두사 및 클래스의 접미사로 사용하여 구조체 접근자가 계속 읽을 수있게합니다. (%ingredient-name ingredient).

빠른 GitHub의 조사에서 판단이 : (여기에 사용이 때문에 낙타 표기법을 사용하여 학생 몇 명을 제외하고)있는 그대로 모든 사람들이 꽤 많이 구조체를 사용하는 것처럼 https://github.com/search?p=1&q=struct-out+language%3Aracket&type=Code

것 같습니다.

그래서 구조체 유형과 인스턴스를 구분하려면 어떻게해야합니까? 관련성이 있습니까? 내가 지금까지 생각하고 있니? 소프트웨어 엔지니어링에 대해이 질문을해야합니까?

답변

2

명명 규칙은 struct에 특별한 표기법이 없다는 것입니다. 이것은 struct이 클래스, 유닛, 시그니처, 구성 요소 등의 '스키마와 유사 함'으로 인해 발생할 수 있지만 잘못되었을 수 있습니다.

struct과 비슷한 클래스, 단위 등을 발명하는 데는 아무런 문제가 없습니다.하지만 이는 임의적이며 개인적인 것이며 문서화되어야합니다.

관련 문제