[Tucker의 Go 언어 프로그래밍] 04장 변수

Coen·2023년 9월 26일
1

tucker-go

목록 보기
1/18
post-thumbnail

이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 04장 써머리입니다.

04 변수

4.1 변수란?

변수(variable)는 값을 저장하는 메모리 공간

package main

import "fmt"

func main() {
	var a int = 10                    // a 변수 선언      - ❶
	var msg string = "Hello Variable" // msg 변수 선언    - ❷

	a = 20               // a 변수 값 변경   - ❸
	msg = "Good Morning" // msg 변수 값 변경 - ❹
	fmt.Println(msg, a)  // msg 와 a 값 출력 - ❺
}

4.2 변수 선언

변수를 사용하려면 먼저 변수를 선언해야한다.
변수 선언이란 컴퓨터에게 값을 저장할 공간을 마련하라고 명령을 내리는 것.
메모리 할당 이라고 한다.

  1. variable의 약자로 변수 선언을 알리는 키워드
  2. 선언할 변수의 이름
  3. 선언할 변수의 타입
  4. 초기화할 변수의 값

4.3 변수에 대해 더 알아보기

4.3.1 변수의 4가지 속성

  • 이름: 이름을 통해 값이 저장된 메모리 공간에 손쉽게 접근 가능
  • 값: 변수가 가리키는 메모리 공간에 저장된 값
  • 주소: 변수가 저장된 메모리 공간의 시작 주소
  • 타입: 변수값의 형태 (자료형 혹은 데이터 타입이라고도 함)

  • 위와 같이 변수를 선언하면 선언한 타입의 크기에 해당하는 공간을 할당하고, 그 공간이 위치한 메모리의 시작 주소를 a로 지칭한다. 이후 해당 메모리 공간에 10이라는 값을 복사한다.
  • 변수 a의 값을 바꾸면 a의 메모리 시작 주소부터 변수타입의 크기 만큼의 공간에 값 50을 복사한다.

4.3.2 변수는 이름을 가지고 있다.

변수명 네이밍 규칙

  1. 문자, 숫자, _ 를 사용할 수 있다.
  2. 첫 글자는 반드시 문자 혹은 _
  3. _를 제외한 다른 특수문자 사용 불가

변수명 권장 사항

  1. 영문 알파벳만 사용할 것
  2. camel case 사용할 것
  3. 변수명은 되도록 짧게 사용. 잠시 사용하는 로컬변수는 한글자 권장
  4. 밑줄 _은 일반적으로 사용하지 않는다.

4.3.3 변수는 타입을 가지고 있다

  1. 타입은 공간의 크기를 나타낸다.
    변수는 메모리 주소를 가르킨다.
    즉, 어디서부터 어디까지 읽을지 알수있다

  2. 타입을 알아야 컴퓨터가 데이터를 해석할 수 있다.

4.4 변수 선언의 다른 형태

아래 4가지 형태가 있다고 한다.

package main

func main() {
	var a int = 3
	var b int
	var c = 4
	d := 5
}

타입별 기본값

  • 변수를 선언할 때 초깃값을 생략하면 다음의 기본값이 자동 대입된다.
타입기본값
모든 정수 타입0
모든 실수 타입0.0
불리언false
문자열""
그외nil

숫자값 기본 타입
타입추론을 통해 변수를 선언하는 경우 우변이 정수이면 int, 실수이면 float64가 기본으로 지정된다.

4.5 타입 변환

  • Go는 최강타입 언어이다.
  • 연산이나 대입에서 타입이 다르면 에러 발생.
  • 다른 타입과 연산을 하려면 타입변환을 통해 타입을 통일시켜야 연산이 가능하다.

타입 변환 시 두가지 유의점

  1. 실수 타입에서 정수타입으로 타입을 변환하면 소수점 이하가 버려진다.
  2. 큰 범위를 갖는 타입에서 작은 범위를 갖는 타입으로 변환하면 값이 달라질 수 있다.

4.6 변수의 범위

변수는 각 scope에 맞는 생명주기를 가지고 있다.

4.7 숫자 표현

4.7.1 정수 표현

  • 정수는 부호를 표현해야 하기 때문에 첫 번째 비트를 부호 비트로 정해 1이면 음수, 0이면 양수를 나타낸다.
    - 00000001 => 1
    - 10000001 => -1

4.7.2 실수의 표현

  • 실수는 무수히 많은 숫자가 있기 때문에 정수 타입처럼 바로 2진수로 변환하여 사용할 수 없다.
  • Go는 IEEE-743표준을 따라 실수를 표현한다.
    - ex) 1024.234는 0.1024234 x 10^4

  • 모든 실수를 표현할 수 없고 한계가 있다는 점이다.
  • 회계나 금융과 같이 정확한 수치 연산이 필요한 프로그래밍에서는 실수 타입 사용에 각별한 주의가 필요하다.

요약

  1. 변수는 값을 저장하는 메모리 공간
  2. 변수를 사용하려면 선언을 해야한다.
  3. 변수는 4가지 속성이 있다. 이름, 값, 타입, 주소
  4. 변수 선언 방법은 다양하다.
  5. 타입 변환은 한 타입의 값을 변환 가능한 다른 타입으로 변환시키는 것.
  6. 숫자 타입은 크기에 따라 표현할 수 있는 값의 범위가 다르다.
profile
백엔드 프로그래머

0개의 댓글