[Golang] 변수와 상수 1

이정훈·2023년 5월 18일
0

Golang

목록 보기
1/24
post-thumbnail

콘솔 출력 함수의 기본

println, print

  • 변수와 상수 전에 우리가 코드를 계속 출력하면서 해야하기 때문에 간단하게 정리~
  • Go 언에에서는 꼭 fmt패키르를 import하지 않아도 기본적으로 콘솔 출력 함수인 print, println함수를 지원해 준다.
  • 두 함수의 차이점은 단순히 호출 후 개행을 해주냐? 안해주냐? 이다.
  • 그래서 개행을 하기 위해서는 개행을 의미하는 이스케이프 시퀀스인 '\n'을 입력해줘야 한다.

코드

package main

func main() {
	var num1 int = 1
	var num2 int = 2
	
	print("Hello goorm!")
	print(num1)
	print(num2)
	print(num1 + num2)
	print("Hello goorm!", num1 + num2,"\n")
	
	println("Hello goorm!")
	println(num1)
	println(num2)
	println(num1 + num2)
	println("Hello goorm!", num1 + num2)>	
}

출력

Hello goorm!123Hello goorm!3
Hello goorm!
1
2
3
Hello goorm! 3

fmt

  • 일반적으로 Go언어에서 콘솔 입출력을 위해서는 fmt패키지를 import해서 사용해야한다.
  • Go언에에서 기본적으로 제공되는 입출력 함수도 있지만, 그것을 사용하는 것보다는 조금 더강력한 입출력 기능을 제공하는 fmt 패키지의 사용을 권장한다.
  • package main 밑 줄에 impart "fmt"를 작성해서 이패키지를 사용하겠다고 선언해준다.
  • Printf 함수는 서식 문자를 활용하여 원하는 포맷으로 데이터를 채워서 출력하고자 할 때 사용

코드

package main

import "fmt"

func main() {
    var num1 int = 1
    var num2 int = 2
  
    fmt.Print("Hello goorm!", num1, num2, "\n")
  
    fmt.Println("Hello goorm!", num1, num2)
	
    fmt.Printf("num1의 값은:%d num2의 값은:%d\n", num1, num2)
}

출력

Hello goorm!1 2
Hello goorm! 1 2
num1의 값은:1 num2의 값은:2

변수 선언과 초기화

  • 변수! → 값! 그 존재 가치가 있다.
  • 값을 입력, 출력하고 연산하기 위해서는 꼭 메모리 공간이 필요!
    그래서 맨 처음에 해야하는 것이 '어떤 형의 값을 저장할 공간을 선언하는 것'
  • Go에서 변수 선언 방식은 var 변수이름 변수형 그리고 변수를 선언한 곳에서 바로 초기값을 설정 가능
  • Go에서 변수를 선언할 때 가장 큰 특징은 'Short Assignment Satatement'라고 불리는 := 이를 사용하면 별다른 형 선언 없이 타입 추론이 가능하기에 유용하게 사용된다!
  • 하지만 주의해야 할 점은 '함수(func)내에서만 사용이 가능' 따라서, 함수 밖에서(전역 변수)는 꼭 var키워드를 선언해줘야 한다!

코드

var a int = 1
var b string = "Hello"
   
c := 1
d := "Hello"

출력

a는 선언과 동시에 1로 초기화
c, d는 오류없이 int와 string이라는 자료형으로 저장

  • Go에서는 변수를 선언하고 초기값을 설정하지 않으면 'Zero value' 로 설정 자주등장한다!
    bool 타입은 false, 숫자 타입은 0, string 타입은 ""(빈 문자열)

  • Go언어에서는 선언만 하고 쓰지 않았다면 에러가 발생하며 컴파일에 실패

  • 이는 변수, 패키지, 함수 등 모든 선언에서 동일하게 적용

  • Go언어는 간결하고 가독성이 좋고 코드가 짧다, 그렇기 때문에 이렇게 메모리를 아무 이유없이 차지하는 변수들에 대해 굉장히 단호하다. 그러므로 꼭 쓰이는 변수만 선언해야하며 값을 지울떄는 선언한 모든 부분을 지워줘야한다!

코드

package main

import "fmt"

var globalA = 5 //함수 밖에서는 'var' 키워드를 입력해야함.
				// 꼭 형을 명시하지 않아도 됨
func main() {
	var a string = "goorm"
	fmt.Println(a)

	var b int = 10
	fmt.Println(b)

	var d string  // "" 공백으로 출력
	fmt.Println(d)

	var e int  // 0 으로 출력
	fmt.Println(e)

	f := "short"
	fmt.Println(f)

	g := 777
	fmt.Println(g)

	fmt.Println(globalA)
}

###- 출력

goorm
10

0
short
777
5
  • C언어와 동일하게 위 예시 코드에서 //한줄을 주석, /* *//**/ 사이에 들어간 내용을 라인에 상관없이 전부 주석처리
  • Go언어도 동일한 형의 변수를 한 번에 여러개 선언할 수 있다.
    이때 변수의 개수와 초기화하는 값의 개수가 동일해야한다, 만약 초기화하지 않는다면 모든 값을 초기화 하지 않아야한다.

코드

package main

import "fmt"

func main() {
	var a, b int = 10, 20
	fmt.Println(a, b)

	i, j, k := 1, 2, 3 // 여러 변수를 같이 사용할 때는 Zero Value 값을 나타내지 않는다! 변수가 3개면 초기값도 3개로 선언해주자!
	fmt.Println(i, j, k)

	var str1, str2 string = "Hello", "goorm"
	fmt.Println(str1, str2)

	q, w, e := "hi", "nice", "good"
	fmt.Println(q, w, e)

	z, x, c := "LEE", "JUNG", 914 //다른 형식도 같이 사용 가능!
	fmt.Println(z, x, c)

}

출력

10 20
1 2 3
Hello goorm
hi nice good
LEE JUNG 914
  • C와 C++언어와 비교해서 선언방법에 차이가 있다. C언어의 경우 int a와 같이 타입이 먼저 오는데 반해, Go언어는 이름이 먼저오고 그 다음에 타입이 온다.
  • 타입을 검사하는 Java같은 언어에서도 타입이 앞에 오기 때문에 야간은 생소할 수 있다.
  • var a string은 "변수 a는 스트링이다"라고 해석할 수 있기에 더 직관적이다! → var a string "Variale a is string"

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

profile
싱숭생숭늉

0개의 댓글