[The Go Programming Language] 2장 프로그램 구조 - 2.1 이름

in #kr-dev6 years ago (edited)

modolee_logo
안녕하세요. 개발자 모도리입니다.
The Go Programming Language 라는 책으로 Go를 공부하고 있으며, 해당 책의 내용을 요약 정리해서 올리려고 합니다. 저는 번역본을 구매해서 공부하고 있습니다.
예제코드 라고 나오는 것들은 https://github.com/modolee/tgpl.git 에서 다운 받으실 수 있습니다.

지난 게시물


2장 프로그램 구조

2.1 이름

  • Go의 함수, 변수, 상수, 타입, 구문 라벨, 패키지 등의 이름은 간단한 규칙을 따릅니다.
  • 문자(유니코드에서 문자로 간주하는 것 모두)나 밑줄로 시작하고, 그 뒤에 임의의 개수의 부가적인 문자, 숫자, 밑줄을 쓸 수 있습니다.
  • 대소문자를 구별합니다. (heapSort와 Heapsort는 다른 이름입니다.)

문법 상 허용된 25개 키워드

  • 다음 키워드는 이름으로 사용할 수 없습니다.
break    | default     | func   | interface | select
case     | defer       | go     | map       | struct
chan     | else        | goto   | package   | switch
const    | fallthrough | if     | range     | type
continue | for         | import | return    | var

이미 정의 된 내장 상수, 타입, 함수의 이름 30개

  • 예약어가 아니기 때문에 선언에서 이름으로 사용할 수 있습니다.
  • 이러한 이름을 재정의하는 것이 유용한 일부 경우가 있지만 나중에 혼동 될 수 있다는 점에 주의해야 합니다.
  • 함수 안에 선언 된 경우 이 이름은 함수 내로 국한됩니다.
  • 함수 밖에서 선언하면 이름이 속하는 패키지의 모든 파일에서 볼 수 있습니다.
  • 이름 첫 글자의 대소문자 여부로 패키지 간의 가시성을 결정합니다. 이름이 대문자로 시작하면 export 되어 자신의 패키지 밖에서 보거나 사용할 수 있으며, fmt의 Printf와 같이 프로그램의 다른 부분에서도 참조할 수 있습니다.
  • 패키지명 자체는 항상 소문자입니다.
상수
true | false | iota | nil
타입
int     | int8    | int16      | int32     | int64
uint    | uint8   | uint16     | uint32    | uint64 | uintptr
float32 | float64 | complex128 | complex64
bool    | byte    | rune       | string    | error
함수
make    | len     | cap  | new | append | copy | close | delete
complex | real    | imag
panic   | recover

이름의 길이

  • 이름의 길이에는 제한이 없지만 Go 프로그램에서의 convention과 style은 짧은 이름을 선호하며, 특히 좁은 범위를 갖는 지역 변수에서는 더 그렇습니다. (theLoopIndex 보다는 i 같은 변수를 권장합니다.)
  • 일반적으로 범위가 클수록 이름이 더 길고 의미가 있어야 합니다.

표기법

  • 단어를 조합해 이름을 지을 때 CamelCase를 사용합니다. 즉, 단어 연결 시 밑줄보다는 대문자를 더 선호합니다.
  • 표준 라이브러리에는 QuoteRuneToASCIIparseRequestLine 등의 함수명은 있지만, quote_rune_to_ASCIIprase_request_line 같은 함수명은 없습니다.
  • ASCII나 HTML 같은 약어나 두문자는 항상 동일한 대문자나 소문자로 표기하여 htmlEscape, HTMLEscape, escapeHTML 등으로 호출하고 escapeHtml 로는 호출하지 않습니다.

이어보기

[The Go Programming Language] 2장 프로그램 구조 - 2.2 선언

Coin Marketplace

STEEM 0.25
TRX 0.20
JST 0.036
BTC 94745.85
ETH 3468.48
USDT 1.00
SBD 3.48