• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 기타게임 소스자료실
    • 기타게임 소스자료실 기타 ()
    • [Go 공식문서 한국어 정리] ⓪11. Go 선언문 문법의 비밀

      • 오뉴노노
      • 2026.05.30 - 01:18 17

    [Go 공식문서 한국어 정리] ⓪11. Go 선언문 문법의 비밀

    원문 제목: Go's Declaration Syntax
    작성자: Rob Pike

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    📌 1. 서론 — 이 문서가 다루는 내용
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Go를 처음 접하는 사람들은 선언 문법이 C 계열과 왜 다른지 궁금해합니다.
    이 글은 두 접근 방식을 비교하고, Go의 선언이 왜 그런 모양인지 설명합니다.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    📌 2. 핵심 개념
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    ① C의 선언 문법 — 표현식 중심
    C는 선언문을 표현식으로 작성합니다.
    int x;는 x가 int라는 뜻입니다.
    int *p;는 *p가 int이므로 p는 int 포인터입니다.
    이는 영리한 문법이지만 복잡해지면 읽기 어렵습니다.

    ② Go의 선언 문법 — 왼쪽에서 오른쪽으로
    Go는 이름을 먼저 쓰고 타입을 나중에 씁니다.
    x int, p *int, a [3]int처럼 왼쪽에서 오른쪽으로 읽습니다.
    더 간결하고 명확합니다.

    ③ 함수 선언의 차이
    C: int main(int argc, char *argv[])
    Go: func main(argc int, argv []string) int
    Go는 "함수 main은 int와 string 슬라이스를 받아 int를 반환한다"고 직관적으로 읽힙니다.

    ④ 복잡한 타입도 명확하게
    Go에서 함수 변수 선언:
    f func(func(int,int) int, int) int
    왼쪽에서 오른쪽으로 읽으면 명확합니다.
    반환 타입이 함수여도 헷갈리지 않습니다.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    📌 3. 주요 내용 상세
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    C의 선언 문법은 "표현식에 해당하는 타입을 기술한다"는 아이디어입니다.
    int (*fp)(int a, int b);는 (*fp)(a, b)가 int를 반환하므로 fp는 함수 포인터입니다.

    인자 자체가 함수일 때:
    int (*fp)(int (*ff)(int x, int y), int b)
    읽기 매우 어렵습니다.

    매개변수 이름을 생략하면:
    int (*fp)(int (*)(int, int), int)
    fp의 이름을 어디에 넣어야 할지조차 불분명합니다.

    반환 타입이 함수 포인터라면:
    int (*(*fp)(int (*)(int, int), int))(int, int)
    fp에 관한 선언인지조차 알아보기 힘듭니다.

    C에서 타입과 표현식 문법이 같기 때문에 파싱이 어렵습니다.
    그래서 C의 캐스트는 항상 괄호로 타입을 감쌉니다: (int)M_PI

    Go는 이름이 항상 먼저 옵니다.
    func main(argc int, argv []string) int
    왼쪽에서 오른쪽으로 읽기 쉽습니다.

    매개변수 이름을 제거핍도 혼란이 없습니다.
    func main(int, []string) int
    이름은 항상 맨 앞에 있으니까요.

    클로저 작성도 쉽습니다.
    sum := func(a, b int) int { return a+b } (3, 4)

    포인터는 예외입니다.
    Go는 C의 * 표기를 유지했습니다.
    var p *int; x = *p
    후위 *는 곱셈과 혼동되므로 사용할 수 없었습니다.
    Pascal의 ^를 쓸 수도 있었지만 익숙한 C 표기를 선택했습니다.
    그 대신 (*int)(nil) 같은 변환에서는 괄호가 필요합니다.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    📌 4. 실전 활용 / 예시
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Go의 왼쪽-오른쪽 선언 스타일은 코드 리뷰와 문서 작성 시 가독성을 크게 높입니다.
    특히 고차 함수(higher-order function)나 콜백 타입을 선언할 때 C보다 훨씬 직관적입니다.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    📌 5. 정리
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Go의 선언 문법은 왼쪽에서 오른쪽으로 읽습니다.
    이름이 항상 먼저 오므로 어떤 식별자를 선언하는지 항상 명확합니다.
    복잡한 함수 포인터나 중첩 타입도 C의 "나선형 규칙" 없이 이해할 수 있습니다.

    📎 출처 링크
    https://go.dev/blog/declaration-syntax

    #Go #Golang #syntax #declaration #공식문서

    이 게시물을..
    N
    0
    0
    • [Rust 공식문서 한국어 정리] 166. str오뉴노노
    • 2
      오뉴노노

    오뉴노노 님의 최근 글

    [Rust 공식문서 한국어 정리] 184. PartialOrd 48 2026 06.08 [Rust 공식문서 한국어 정리] 183. Ord 42 2026 06.08 [Rust 공식문서 한국어 정리] 182. Eq 27 2026 06.08 [Rust 공식문서 한국어 정리] 181. PartialEq 33 2026 06.08 [Rust 공식문서 한국어 정리] 180. TryFrom 22 2026 06.08

    오뉴노노 님의 최근 댓글

    ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [Rust 공식문서 한국어 정리] 166. str
    • 목록
      view_headline
    × CLOSE
    전체 던파 5 뮤 18 천상비 프로젝트신루 5 아이온 18 어둠의전설 28 리니지2 7 크로노스 5 칼온라인 3 기타 490
    기본 (489) 제목 날짜 수정 조회 댓글 추천 비추
    기타 정렬 검색
    • 포인트 획득 공지
      5
      2026.04.24 - 19:48 6388 5
    • 링크 업로드 관련 공지
      10
      2026.03.25 - 21:56 5752 10
    • 인증메일 공지
      3
      2026.03.15 - 16:42 5681 3
    • 파일링크 및 인증메일 발송 관련 문의 안내
      9
      2026.03.14 - 22:03 6558 9
    • 포인트 게시판 안내
      2026.02.28 - 19:14 7158
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 8861 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:16 860
    489
    기타
    [Rust 공식문서 한국어 정리] 184. PartialOrd
    오뉴노노 2026.06.08 - 15:42 48
    488
    기타
    [Rust 공식문서 한국어 정리] 183. Ord
    오뉴노노 2026.06.08 - 15:42 42
    487
    기타
    [Rust 공식문서 한국어 정리] 182. Eq
    오뉴노노 2026.06.08 - 15:42 27
    486
    기타
    [Rust 공식문서 한국어 정리] 181. PartialEq
    오뉴노노 2026.06.08 - 15:42 33
    485
    기타
    [Rust 공식문서 한국어 정리] 180. TryFrom
    오뉴노노 2026.06.08 - 15:42 22
    484
    기타
    [Rust 공식문서 한국어 정리] 179. TryInto
    오뉴노노 2026.06.08 - 15:42 16
    483
    기타
    [Rust 공식문서 한국어 정리] 178. From
    오뉴노노 2026.06.08 - 15:39 20
    482
    기타
    [Rust 공식문서 한국어 정리] 177. Into
    오뉴노노 2026.06.08 - 15:39 15
    481
    기타
    [Rust 공식문서 한국어 정리] 176. AsRef
    오뉴노노 2026.06.08 - 15:39 12
    480
    기타
    [Rust 공식문서 한국어 정리] 175. Deref
    오뉴노노 2026.06.08 - 15:39 9
    479
    기타
    [Rust 공식문서 한국어 정리] 174. Default
    오뉴노노 2026.06.08 - 15:39 10
    478
    기타
    [Rust 공식문서 한국어 정리] 173. Clone
    오뉴노노 2026.06.08 - 15:38 9
    477
    기타
    [Rust 공식문서 한국어 정리] 172. Copy
    오뉴노노 2026.06.08 - 15:38 9
    476
    기타
    [Rust 공식문서 한국어 정리] 171. Drop
    오뉴노노 2026.06.08 - 15:38 5
    475
    기타
    [Rust 공식문서 한국어 정리] 170. Weak
    오뉴노노 2026.06.08 - 15:37 15
    474
    기타
    [Rust 공식문서 한국어 정리] 169. Arc
    오뉴노노 2026.06.08 - 15:37 4
    473
    기타
    [Rust 공식문서 한국어 정리] 168. Rc
    오뉴노노 2026.06.08 - 15:37 12
    472
    기타
    [Rust 공식문서 한국어 정리] 167. Box
    오뉴노노 2026.06.08 - 15:36 6
    471
    기타
    [Rust 공식문서 한국어 정리] 166. str
    오뉴노노 2026.06.08 - 15:36 7
    470
    기타
    [Rust 공식문서 한국어 정리] 165. String
    오뉴노노 2026.06.08 - 15:36 5
    • 1 2 3 4 5 6 7 8 9 10 .. 25
    • / 25 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay