Go : 자료형 및 변수, 상수

김아무개·2023년 10월 21일
0

고 Go

목록 보기
4/13

참고


자료형

정수 : 0

  • 부호 있는 정수형
    • int, int8, int16, int32, int64
    • int는
      32bit 시스템에서는 int32,
      64bit 시스템에서는 int64

  • 부호 없는 정수형
    • uint, uint8, uint16, uint32, uint64
    • uint는
      32bit 시스템에서는 uint32,
      64bit 시스템에서는 uint64

  • uint와 같은 크기를 갖는 포인터형
    • uintptr

실수 : 0.0

  • float32
    • 32비트 부동 소수점
    • 7자리 정밀도
  • float64
    • 64비트 부동 소수점
    • 12자리 정밀도

복소수

  • complex64, complex128

문자열 : ""

  • string

바이트

  • byte
  • uint8 과 동일

유니코드 코드포인트

  • rune
  • int32와 동일

논리 : true / false

  • bool

 

변수명 규칙

  • 첫글자로 숫자 안됨
  • 대소문자 구분
  • 문자, 숫자, 밑줄, 특수문자 허용

 

변수 선언 방법

default

  • var 변수명 자료형 = 초기화
  • var 변수명 자료형

  • var 변수명1, 변수명2, .. , 변수명N = 값1, 값2, ... , 값N

자료형 추론

  • var 변수명 = 초기화
  • var 변수명

  • var 변수명1, 변수명2, .. 변수명N

- 사용 예시 1

package main

import "fmt"

func var1() {

	var a int = 4
	var c, d, e int
	var f, g, h int = 1, 2, 3
	var i float32 = 11.4
	var j string = "go lang"
	var k = 4.74 
	var l = "Hi 고!"
	var m = true

	c = 11
	d = 21
	e = 31

	fmt.Println("a : ", a,
		"\nc : ", c,
		"\nd : ", d,
		"\ne : ", e,
		"\nf : ", f,
		"\ng : ", g,
		"\nh : ", h,
		"\ni : ", i,
		"\nj : ", j,
		"\nk : ", k,
		"\nl : ", l,
		"\nm : ", m)
}

- 사용 예시 2

package main

import "fmt"

func var2() {
	var (
		name      string = "zhyun"
		height    int32
		weight    float32
		isRunning bool
	)

	height = 500
	weight = 100.01
	isRunning = true

	fmt.Println("name : ", name)
	fmt.Println("height : ", height)
	fmt.Println("weight : ", weight)
	fmt.Println("isRunning : ", isRunning)
}

짧은 선언 방식

  • 변수명 := 초기화
    • 반드시 함수 안에서 사용해야 한다.
    • 이렇게 생성된 변수는 선언 이후에 다시 값을 할당하려고 할 경우 예외가 발생한다.
    • 주로 제한된 범위의 함수 내에서 사용할 경우에 코드 가독성을 높일 수 있다.

- 사용 예시

if i := 10; i < 11 {
  fmt.Println("Short Variable Test Success!")
  
  i++
  fmt.Println("i = ", i) // i = 11
}    

 

상수 선언 및 사용 방법

  • const 변수명 자료형 = 값
  • const 변수명1, 변수명2, .., 변수명n 자료형 = 값1, 값2, .., 값n
  • const 변수명 = 값
  • const 변수명1, 변수명2, .., 변수명n = 값1, 값2, .., 값n

변수와의 차이점은

  1. 한번 선언 후 값 변경이 불가하다는 점
  2. 선언 시 초기화를 필수적으로 해줘야 하는 점
  3. 함수의 반환 값을 상수 변수에 할당할 수 없다는 점

이다.

- 사용 예시

package main

import "fmt"

func const2() {
    const a, b int = 10, 99
    const c, d, e = true, 0.84, "test"
  
    const (
        f    = 3.14
        g, z = "gim", "zhyun"
    )
  
    fmt.Println("a : ", a)
    fmt.Println("b : ", b)
    fmt.Println("c : ", c)
    fmt.Println("e : ", e)
    fmt.Println("d : ", d)
    fmt.Println("f : ", f)
    fmt.Println("g : ", g)
    fmt.Println("z : ", z)
}



profile
Hello velog! 

0개의 댓글