본문 바로가기
IT 초보코딩의 세계/Go 언어

Go 언어의 기본 문법 패키지와 변수,자료형 1장

by 조이럭키7 2023. 3. 23.
반응형

★콘솔 출력

import "fmt"
fmt.Println(데이터)
fmt.Print (데이터)
fmt.Printf(“포맷”,  데이터)

☆ { } 표기법으로는

함수, 조건문. 반복문 등을 시작할 때는 반드시 같은 줄에서 중괄호를 시작

package main
import "fmt"
func main() {
        i := 10
        if i >= 5 {
                  fmt.Println("5 이상")
        }
        for i := 0; i < 5; i++ {
                fmt.Println(i)
       }
}

① ; 

   - 명령문의 끝에 사용이 가능한데 생략도 가능

   - 하나의 라인에 2개의 명령문이 있는 경우는 구분을 위해서 사용해야 함

② 주석

   - 한 줄 주석: // 주석

   - 블럭 주석: /* 주석 */

③ 들여쓰기

   - 탭을 이용

   - gofmt 소스파일경로 이용해서 내용을 정렬하는 것이 가능


☆ 패키지

Go 프로그램은 한 개 이상의 패키지로 구성

패키지는 한 개 이상의 Go 소스 파일을 포함하는 디렉토리이며 모든 Go 파일은 패키지에 속함

패키지 디렉토리는 워크스페이스의 src 디렉토리 하위에 위치

패키지 이름은 모든 Go 파일의 최상단에 선언

 

     package mypackage

해당 Go 파일은 mypackage라는 패키지에 속함

Go 언어에서 패키지 이름은 일반적으로 소문자로 선언하고 패키지의 디렉토리 이름은 패키지 이름과 동일하게 지정하는 것이 바람직

새로운 패키지를 추가할 경우 패키지 이름으로 새 디렉토리를 만들고 관련된 파일을 해당 디렉토리 안에 저장하면 됨

 

→ 패키지 import

하나의 패키지

     import “패키지이름

패키지 안에 존재하는 패키지 경우

     import “외부패키지이름/내부패키지이름

여러 패키지

    mport{

              패키지1

              패키지2

    }

사용하지 않는 패키지를 import 하는 것을 허용하지 않는데 앞에 _ 붙이면 가능

전역으로 가져오고자 하는 경우 -> impot . “패키지이름

패키지 이름에 새로운 이름 부여 -> import 별명 패키지이름


☆변수

변수를 선언하는 방법에는

하나의 변수 선언: var 변수명 자료형

초기값을 지정한 변수 선언 및 초기화: var 변수명 자료형 = 초기값

초기값을 지정한 변수 선언 및 초기화: var 변수명 = 초기값

동일한 자료형 여러 개 변수 선언: var 변수명1, 변수명2… 자료형

 

동일한 자료형 여러 개 변수 선언 및 초기화: var 변수명1, 변수명2… 자료형 = 초기값1, 초기값2

다른 자료형의 여러 개 변수 선언 및 초기화 가능

함수 안에서 선언하고 초기화 할 때는 var 대신에 := 을 이용(자료형을 생략하기 때문에 type inference 라고)

    name := “joylucky

☆ 기본 자료형

bool: boolean 으로 true 또는 false

int, int8, int16, int32, int64: 부호가 있는 정수형으로 int 는 시스템 환경에 해당하는 비트 수를 선택

unit, unit8, uint16, uint32, uint64, uintptr: 부호가 없는 정수형이며 uintptr은 메모리의 참조를 저장할 수 있는 정수

byte: uint8 과 크기는 동일한데 하나의 바이트를 저장하는 것으로 정수나 ‘’ 안에 하나의 문자를 포함해서 표현

string: byte의 조합이며 문자를 저장하는데 immutable 타입이기 때문에 문자를 삭제하거나 추가하면 새로운 문자열을 생성하는데 “” 안에 문자를 나열

rune: int32 와 동일한데 보통 유니코드 문자를 나타내고자 할 때 사용하는데 ‘’ 안에 하나의 문자를 포함시키는데 \u코드를 설정하는 것도 가능

float32, float64: 실수

complex64, complex128: 복소수

      ▲ 실수부허수부를 이용해서 표현: 1 + 2i

      ▲ 실수부허수부 생략 가능

      ▲ real 함수를 이용해서 실수부만 추출 가능

      ▲ imag 함수를 이용해서 허수부만 추출 가능

 

기본값 - 초기값이 없는 변수는 자료형에 따라 다른 zero value 가 할당됨
     ● 숫자: 0
     ● 불리언 자료형: fasle
     ● 문자열: “”
     ● 포인터: nil

변수의 메모리 크기는 unsafe 패키지의 Sizeof 함수를 이용

실수 자료형 사용 시 유의 10진수를 2진수로 변환해서 수행하기 때문에 정밀도에 따른 오류가 발생할 수 있음

import "fmt"

func main() {
        var sum float64 = 0.0
        for i := 0; i < 1000; i++ {
               sum = sum + 0.1
        }
        fmt.Println(sum)
}

99.9999999999986

☆ 자료형 중에 문자열(String)

“ ” 안에 문자나 유니코드(\u8자리16진수) 나열해서 표현

여러 줄로 만들어진 문자열을 ``(back quote, backtick) 이용해서 표현

문자열의 바이트 크기는 len 함수 이용 한글은 1글자가 3

문자열에서 문자의 개수는 Unicode/utf8 패키지의 RuneCountInString 함수 이용

import "fmt"
import "unicode/utf8"

func main() {
        var korean string = "조이"
        var english string = "joylucky"

        fmt.Println(len(korean))
        fmt.Println(len(english))

        fmt.Println(utf8.RuneCountInString(korean))
        fmt.Println(utf8.RuneCountInString(english))
}

6 4 2 4

문자열[인덱스] 이용해서 문자 단위로 접근 가능

+ 연산자를 이용해서 결합 가능

동일성 여부는 ==

제어 문자 사용 가능

 


다음 포스팅에서는 연산자와 포인터에 대해서 알아보는 시간을 가져보자.

반응형

댓글