Chapter 3. 변수
오늘은 변수를 선언하고 정의하는 것에 대해 배워보도록 하겠다.
- 선언: 코드 일부로서 변수나 함수가 있음을 알려주는 것
- 정의: 코드 일부로서 변수나 함수가 무엇인지 알려주는 것
쉽게 말해 선언은 변수의 자료형이나 이름까지만 기입한 상태이고 정의는 그 변수에 값을 넣는 행위를 말한다고 볼 수 있다.
1. 변수 선언 방식
Golang은 변수의 선언 방식이 다양하게 존재한다.
또한, C, C++, JAVA와 같이 자료형을 변수 형태에 맞게끔 미리 고르는 방식이 아니라 Python처럼 대입되는 값에 맞는 자료형을 스스로 결정하는 형태로 구성되어 있다.
그럼 예시를 통해 변수를 선언하는 방식에 대해 좀 더 알아보도록 하겠다.
전체코드
package main
import "fmt"
func main() {
// Case 1 - ':='를 사용하면 var 입력 없이 간단히 변수 선언 가능
/*
a, b := 10, 5
fmt.Println("a: ", a)
fmt.Println("b: ", b)
*/
// Case 2 - 자료형 선언 후, 값 대입
/*
var a, b int
a = 10
b = 20
fmt.Println("a: ", a)
fmt.Println("b: ", b)
*/
// Case 3 - 복수 변수 [같은 자료형]
/*
var a, b int = 30, 40
fmt.Println("a: ", a)
fmt.Println("b: ", b)
*/
// Case 4 - 복수 변수 [다른 자료형]
var (
a, b int = 10, 20
c, d = "Hello", "World"
)
fmt.Println("a: ", a)
fmt.Println("b: ", b)
fmt.Println("c: ", c)
fmt.Println("d: ", d)
}
1-1 '!=' 활용하기
Case 1. '!='를 활용한 변수 선언
a, b != 10, "Hello"
위와 같이 '!='를 사용할 경우, var 사용 없이 간단하게 변수의 선언과 정의를 동시에 할 수 있다.
개인적으로 제일 손쉽게 사용할 수 있는 방식인 것 같다.
1-2 자료형 선언 후, 값 대입
Case 2. (선) 자료형 선언 / (후) 값 대입
var a, b int
a = 10
b = 5
위 예시는 변수를 선언과 동시에 정의하지 않을 때 사용할 수 있다.
먼저 var a,b int를 통해 int형으로 a, b를 만든다.
이후, a에 10, b에 5를 대입한다.
- 주의할 점: Case 1에서 사용한 '!='이 아니라 '='을 사용하는 것!!!!
1-3 복수 변수 [ft. 동일 자료형]
Case 3. 복수 변수 사용
- 아래 예시는 서로 같은 Type일 경우만 사용 가능
var a, b int = 10,20
위의 방식은 1-2 경우처럼 자료형을 먼저 선택하여 사용하는 방식이다.
다른 점이라 하면 1-2 경우는 값을 이후에 대입했지만 현재는 선언과 동시에 값을 대입한다.
사용할 변수들이 모두 같은 자료형일 때 사용할 수 있기 때문에 사용 전, 같은 자료형인지 확인 필요
1-4 복수 변수 [ft. 다른 자료형]
Case 4. 복수 변수 사용
- 아래 예시는 서로 다른 Type일 경우에도 사용 가능
var (
a, b int = 10, 20 // 자료형 기재 O
c, d = 30, "Hello" // 자료형 기재 X
위의 방식은 1-3의 확장판이라 볼 수 있다.
- 첫번째: int라는 Type을 미리 기재함으로서, a, b에 들어올 수 있는 값을 정수형으로 제한
- 두번째: Type을 기재하지 않음으로서, 들어오는 값에 따라 자료형 자동 변환
사용하고자 하는 변수가 복수개이며 Type이 다를 경우, 사용 용이
마무리
오늘은 변수를 선언하고 정의하는 방법에 대해 배워보았다.
가장 특이한 점이라 함은 ':="라는 기호를 통해 변수를 초기화 시키는 방법이 있다는 부분이었다. Golang만의 새로운 것을 한가지 배우게 된 것 같아 기분이 좋다 :)
전체 소스 git링크
https://github.com/cho876/Go/blob/main/Prac03/prac03.go
Author And Source
이 문제에 관하여(Chapter 3. 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cho876/Chapter-3.-변수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)