Published: 06 Oct 2018 › Updated: 06 Oct 2018![[The Go Programming Language] 2장 프로그램 구조 - 2.4 할당](https://i.ecency.com/p/HNWT6DgoBc18GVREvvsnAjfLwLF5qHHFduNHKinq2s659FD5RBdc1NzHR5ipPfZkVmpViuMe2Kd1XiLUrqyHZMEMDhCu4832hHtzqdCuTeZD13h4g1CGrtaL9ae?format=match&mode=fit&height=377)
[The Go Programming Language] 2장 프로그램 구조 - 2.4 할당
안녕하세요. 개발자 모도리입니다.
The Go Programming Language 라는 책으로 Go를 공부하고 있으며, 해당 책의 내용을 요약 정리해서 올리려고 합니다. 저는 번역본을 구매해서 공부하고 있습니다.
예제코드 라고 나오는 것들은 https://github.com/modolee/tgpl.git 에서 다운 받으실 수 있습니다.
지난 게시물
- [Go] Mac에서 Atom으로 Go 개발 환경 구축하기
- [The Go Programming Language] 1장 튜토리얼 - 1.1 Hello, World
- [The Go Programming Language] 2장 프로그램 구조 - 2.1 이름
- [The Go Programming Language] 2장 프로그램 구조 - 2.2 선언
- [The Go Programming Language] 2장 프로그램 구조 - 2.3 변수
2장 프로그램 구조
2.4 할당
기본 할당
- 변수 내의 값은 할당문에 의해 갱신되며, 할당문의 제일 단순한 형태는
=기호의 왼쪽에 변수가 있고 오른쪽에 표현식이 있는 것입니다.
x = 1 // 명명된 변수
*p = true // 간접 변수
person.name = "bob" // 구조체 필드
count[x] = count[x] * scale // 배열이나 슬라이스 또는 맵 원소
2.4.1 튜플 할당
- 튜플 할당 : 여러 변수를 한 번에 할당할 수 있음
- 오른쪽의 모든 표현식은 변수가 갱신되기 전에 평가돼 특정 변수가 공교롭게 할당의 양쪽에 모두 나오는 경우에 유용합니다.
- 두 변수 값을 서로 바꿀 때
x, y = y, x
a[i], a[j] = a[j], a[i]
- 두 정수의 최대 공약수(GCD)
func gcd(x, y int) int {
for y != 0 {
x, y = y, x%y
}
return x
}
- n번째 피보나치 수를 반복적으로 계산할 때
func fib(n int) int {
x, y := 0, 1
for i := 0; i < n; i++ {
x, y = y, x+y
}
return x
}
- 복수의 결과를 반환하는 함수, 표현식
f, err = os.Open("foo.txt") // 함수 호출이 두 값을 반환합니다.
v, ok = m[key] // 맵 조회
v, ok = x.(T) // 타입 지정
v, ok = <-ch // 채널 수신
// 불필요한 값은 빈 식별자에 할당할 수 있습니다.
_, err = io.Copy(dst, src) // 바이트 카운트 버림
_, ok = x.(T) // 타입만 확인하고 결과 버림
2.4.2 할당성
- 묵시적인 할당
- return문은 return문의 피연산자에 대응하는 반환 변수들을 묵시적으로 할당합니다.
- 슬라이스와 같은 복합 타입에 대한 리터럴 표현식은 묵시적으로 각 요소들을 할당합니다.
medals := []strings{"gold", "silver", "bronze"}
// 위의 문장과 동일합니다.
var medals [3]string
medals[0] = "gold"
medals[1] = "silver"
medals[2] = "bronze"
- 맵과 채널의 원소는 일반적인 변수는 아니지만, 이와 유사한 묵시적 할당 대상입니다.
이어보기
Leave [The Go Programming Language] 2장 프로그램 구조 - 2.4 할당 to:
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 모도리
- ELK Stack을 이용한 로그 관제 시스템 만들기
- 이더리움 콘스탄티노플 하드포크 내용 정리 (Ethereum Constantinople Hardfork)
- [Mastering Ethereum] Oracle
- 겨울철 대비 (이더리움) 가스 절약 방법
- Puppeth를 이용해 AWS에 Private Ethereum Network 구성하기 (PoA)
- [Mastering Ethereum] 4장 지갑(Wallet)
- [Mastering Ethereum] 3장 키와 주소
- [The Go Programming Language] 3장 기본 데이터 타입 - 3.1 정수
- [Ethereum - White Paper] 이더리움 백서 기준 개념 정리
- [The Go Programming Language] 2장 프로그램 구조 - 2.7 범위
- [The Go Programming Language] 2장 프로그램 구조 - 2.6 패키지와 파일
- [The Go Programming Language] 2장 프로그램 구조 - 2.5 타입 선언
- [The Go Programming Language] 2장 프로그램 구조 - 2.4 할당
- [The Go Programming Language] 2장 프로그램 구조 - 2.3 변수
- [The Go Programming Language] 2장 프로그램 구조 - 2.2 선언
- [The Go Programming Language] 2장 프로그램 구조 - 2.1 이름
- [The Go Programming Language] 1장 튜토리얼 - 1.8 미진한 부분
- [The Go Programming Language] 1장 튜토리얼 - 1.7 웹 서버
- [The Go Programming Language] 1장 튜토리얼 - 1.5, 1.6 URL 반입(Fetching)
- [The Go Programming Language] 1장 튜토리얼 - 1.4 애니메이션 GIF