모도리 avatar

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

modolee

Published: 02 Oct 2018 › Updated: 02 Oct 2018[The Go Programming Language] 2장 프로그램 구조 - 2.1 이름

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

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 선언

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

Written by

블록체인에 관심이 많은 개발자입니다.

Read more #kr-dev posts


Best Posts From 모도리

We have not curated any of modolee's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 모도리