[Go(Golang)] 기본 문법(변수, 상수, 함수 선언)

지니·2021년 3월 25일
0

Golang

목록 보기
2/3
post-thumbnail

Go 언어 배우기 Day 02

기본 문법

  1. 중괄호 입력한 후 개행
  2. 세미콜론 필요 없음. 하지만 한 줄에 여러 구문이면 세미콜론 필요.
  3. 여러줄 주석 : /* */, 한줄 주석 : //
  4. 탭 들여쓰기 사용



변수 선언

변수 선언 키워드 var

// 자료형 생략 가능하지만 값 반드시 함께 저장
var 변수명 =var n1 = 1

// 같은 자료형 가지는 변수 여러개 선언
var 변수1, 변수2 자료형
var n1, n2 int

// 여러 변수에 한 번에 값을 초기화 : 선언과 동시에 값을 초기화하면 타입 명시 안해도 됨
var n1, s1 = 12, "Hello"

// 자료형을 변수명 뒤로
var 변수명 자료형

// var과 자료형을 축약
// 함수 안에서는 :=를 쓰면 var과 타입을 지정하지 않고 변수 선언 + 초기화
// 함수 밖에서는 사용 불가!
// 함수 밖에서는 키워드(var, func 등)로 시작해야 하기 때문
변수명 :=// var 생략
변수명 자료형
변수명 자료형 =// 다른 타입을 가지는 변수 여러개 선언
var (
	i int
  s string
  b bool
  f float64
)

변수 선언 후 초기화 하지 않으면 zero value로 초기화

변수 타입zero value
숫자(int, float64 등)0
booleanfalse
string""

Go는 묵시적 형 변환을 하지 않아, 타입이 맞지 않으면 값을 할당할 수 없음

  • 형 변환 : 변환할타입(변수)
var (
	i int 4
  f float64 3.14
)

func main() {
  // 묵시적 타입 변환 불가
  i = f
  
  // 다른 타입 변환
  i = float64(f)
}

Go 자료형

자료형설명
booltrue, false 저장
string문자 / 문자열 저장
int / int8 / int16 / int32 / int64
uint / uint8 / uint16 / uint32 / uint64 / uintptr
int, uint, uintptr 타입은 32-비트 시스템에서는 32비트 길이고, 64-비트 시스템에서는 64비트 길이
byte
rune
float32 / float64실수형
complex64 / complex128

상수 선언

상수 선언 키워드 const

// 선언과 동시에 초기화하면 타입을 지정하지 않아도 됨
const MAX int = 987654321
const MIN = -1

// 괄호로 묶어서 상수 한번만 명시 가능
const (
	maxValue = 987654321
  minValue = -1
)
  • 값 변경 불가

  • := 로 선언 불가

    • := 는 var과 자료형을 축약한 것
  • 숫자형 상수 : var로는 표현할 수 없는 범위를 저장하는 등 수를 정밀하게 표현 가능

  • 타입 지정 X 상수 = 맥락에 따라 타입 변화

    // 상수 선언시 타입 지정하지 않음
    const number 3.14
    
    func intFunc(x int) int { return x + x }
    func floatFunc(y float64) float64 { return y * 2 }
    
    func main() {
      // 상수 선언시 타입을 지정하지 않았기 때문에 int형으로 자동 변환
      infFunc(number)
      // 상수 선언시 타입을 지정하지 않았기 때문에 float64형으로 자동으로 변환
      floatFunc(number)
    }

함수와 매개변수

함수 선언 방법

  1. 함수의 리턴타입과 매개변수의 자료형은 이름 뒤에 지정
func 함수명(매개변수1 배개면수1자료형) 리턴타입 {
  ..함수내용
}

func add(n1 int, n2 int) int {
  return n1 + n2
}
  1. 매개변수가 같은 타입일 때는 타입을 한번만 명시해도 됨
func add(n1, n2 int) int {
  return n1 + n2
}

함수 리턴 방법

여러 값을 한 번에 리턴 가능

  1. return 뒤에 타입 명시

    • 리턴할 변수를 함수 내부에서 선언하고 리턴해줘야 함
    func calc(n1, n2 int) (int, int) {
      // 리턴할 변수를 함수 내부에서 선언 후 return
      var plus = n1 + n2
      var minus = n1 - n2
      
      return plus, minus
    }
  2. return 뒤에 리턴할 변수 선언

    • 함수 선언 시 생성한 리턴 변수 사용 : 따로 함수 내부에서 리턴 변수 선언 필요 없음
    func calc(n1, n2 int) (plus, minus int) {
      // 리턴할 변수를 함수 내부에서 선언하지 않고 바로 사용
      plus = n1 + n2
      minus = n1 - n2
      
      // 미리 return으로 정해둔 변수 자동으로 리턴
      return
    }
    
    func main() {
      // 리턴받음
      puls, minus = calc(10, 1)
    }
profile
코.빠.죄.아 (코딩에 빠진 게 죄는 아니잖아..!)

0개의 댓글