[Golang] 변수와 상수 2

이정훈·2023년 5월 18일
0

Golang

목록 보기
2/24
post-thumbnail

상수의 선언과 초기화

  • 변수는 초기화된 이후에 다른 값으로 수정이 가능

  • 하지만 상수는 한 번 초기화되면 그 후에 수정이 불가능

  • 상수는 다른 언어들과 동일하게 const 키워드로 선언하고 초기화 한다.

  • 선언 형태는 const 상수이름 상수형, 상수형태는 생략이 가능하고 함수 밖에서도 동일한 용법이 적용

    • 한번 선언 및 초기화되면 수정할 수 없기 때문에 꼭 선언과 동시에 초기화해야 한다. 선언만 한다면 에러가 발생

    • 초기화 후에 사용하지 않아도 에러가 발생하지 않는다. 변수와 다르게 상수는 명시하는 것 자체에 의미가 있기 때문

    • 상수는 var키워드 대신 const키워드를 사용하고 생략할 수 없기 때문에 자연스럽게 :=용법을 사용할 수 없다.

      코드

      package main
      
      import "fmt"
      
      const username = "kim"
      
      func main() {
      	const a int = 1
      	const b, d = 10, 20 //여러 값을 초기화할 수 있음
      	const c = "goorm"
      	const e, f = "LEE", 914  //여러 형식 값을 초기화 할 수 있음
      
      	fmt.Println(username)
      	fmt.Println(a, b, "d\n", c, e, f)
      }

      출력

      kim
      1 10 d
       goorm LEE 914
    • 상수는 변수와 다르게 괄호 ()를 이용해 여러개의 값을 묶어서 초기화 할 수 있다. 다른 형이더라도 초기화할 수 있다.

      코드

      const (
      	상수이름1 = 값1
      	상수이름2 = 값2
      	...
      )
    • 괄호로 같이 묶여있는 상수들은 다른 형으로 초기화 할 수 있다.

    • 괄호 시작 (과 괄호 마지막)의 위치는 상관 없지만 각 상수들은 개행하여 초기화해야 한다. 개행하지 않고 초기화하면 에러가 발생!

    • 각 상수들 사이 ,를 입력하면 안 된다. 입력시 에러 발생

    • iota라는 식별자를 값으로 초기화하면 그 후에 초기화하지 않고 이어지는 상수들은 순서(index)가 값으로 저장!

      코드

      package main
      
      import "fmt"
      
      const ( 
      	c1 = 10 //첫 번째 값은 무조건 초기화해야 함
      	c2
      	c3
      	c4 = "goorm" //다른 형 선언 가능
      	c5
      	c6 = iota //c8까지 index값 저장
      	c7
      	c8
      	c9 = "earth"
      	c10
      	c11 = "End"
      ) 
      
      func main() {
      	fmt.Println(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)
      }

      출력

      10 10 10 goorm goorm 5 6 7 earth earth End

      코드

      package main
      
      import "fmt"
      
      const (
      	c1 = 10 //첫 번째 값은 무조건 초기화해야 함
      	c2 // 값을 주지 않으면 앞의 값을 따라간다!
      	c3
      	c4 = "goorm" //다른 형 선언 가능
      	c5
      	c6
      	c7 = iota //c8까지 index값 저장 (0, 1, 2, 3, 4, 5 시작!)
      	c8
      	c9 = "earth"
      	c10
      	c11 = "End"
      )
      
      func main() {
      	fmt.Println(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11)
      }

      출력

      10 10 10 goorm goorm goorm 6 7 earth earth End

한 눈에 끝내는 고랭 기초 !!

profile
싱숭생숭늉

0개의 댓글