dev.chch
chch's Story
dev.chch
전체 방문자
오늘
어제
  • 분류 전체보기 (21)
    • 공부공부 (11)
      • 워드프레스 (2)
      • 고 (6)
      • 자바스크립트 (1)
      • 기타기타 (2)
    • 일상일상 (10)
      • 부동산스토리 (7)
      • 사담사담 (3)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 레인보드
  • golang
  • 망보드
  • 중기청 전세대출
  • 워프보드코리아
  • 그냥 중국이 다 가져가라고 하자
  • WordPress
  • setting-sync
  • go
  • xhr_fail
  • 전세 후기
  • echo
  • 보증보험 후기
  • 중소기업청년대출
  • golang vs python
  • Kboard
  • vscode 터미널 글자 간격
  • 중기청
  • toy project
  • vscode 글자 간격
  • golang 순위
  • toyproject
  • 중기청 대출
  • 글자 간격
  • 중기청 후기
  • vscode
  • vscode 고정 폭 글꼴
  • Go언어
  • 전세
  • typesscript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev.chch

chch's Story

공부공부/고

golang 구조체 전달

2022. 5. 9. 20:42

golang에는 js의 object 같은 구조체가 있다.

가이드를 찾아보면 보통 이렇게 쓴다.

type Vertex struct {
  X int
  Y int
}

 

구조체를 전달하는 건 그냥 전달하면 된다.

배열이든 구조체 그 자체든 어쨌든 타입에 맞게 전달할 수 있다.

func main() {
	fmt.Println(returnContent())
}

type content struct {
	aaa string
	bbb string
	ccc string
}

func returnContent() []content {
	insert := content{
		aaa: "aaa",
		bbb: "bbb",
		ccc: "ccc",
	}
	contents := []content{}
	for i := 0; i < 3; i++ {
		contents = append(contents, insert)
	}
	return contents
}

 

위의 코드처럼 한 패키지에 있으면 괜찮은데

서로 다른 패키지에 있으면

 

구조체만 전달하는 경우엔

type Content struct {
	aaa string
	bbb string
	ccc string
}

이렇게 Content 형태로 앞글자를 대문자로

멤버 변수까지 접근해야 한다면

type Content struct {
	Aaa string
	Bbb string
	Ccc string
}

멤버 변수들도 Aaa, Bbb, Ccc 처럼 대문자로 해줘야 한다.

 

 

근데 구조체를 배열로 만들어서 전달하면

사실 구조체 자체를 쓴다기 보단 멤버 변수를 쓴다.

 

그래서

type content struct {
	Aaa string
	Bbb string
	Ccc string
}

구조체는 소문자로 하고

멤버 변수만 대문자로 해줬더니

전달된 변수에서 멤버 변수에 접근이 가능하더라.

 

서로 다른 패키지에서 전달받을 때, 이렇게 접근해서 사용할 수 있다.

contentList := content.returnContent()
for _, val := range contentList {
	fmt.Println(val.Aaa)
}

 

그.. reflect 패키지를 사용해서 접근도 가능하긴 한데

 

가능하면 안쓰는게 좋다는 가르침을 받았다..

저작자표시

'공부공부 > 고' 카테고리의 다른 글

golang으로 만들어 본 토이 프로젝트  (0) 2022.05.23
golang의 Public, Private  (0) 2022.05.09
golang echo stylesheet 불러오기  (0) 2022.05.08
golang echo 템플릿 사용기  (0) 2022.05.08
golang으로 만든 구글의 10가지 오픈 프로젝트  (0) 2020.11.03
    '공부공부/고' 카테고리의 다른 글
    • golang으로 만들어 본 토이 프로젝트
    • golang의 Public, Private
    • golang echo stylesheet 불러오기
    • golang echo 템플릿 사용기
    dev.chch
    dev.chch
    dev.ㅋㅋ 웃으면서 개발 공부하기

    티스토리툴바