★콘솔 출력
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
● 문자열[인덱스]를 이용해서 문자 단위로 접근 가능
● + 연산자를 이용해서 결합 가능
● 동일성 여부는 ==
● 제어 문자 사용 가능
다음 포스팅에서는 연산자와 포인터에 대해서 알아보는 시간을 가져보자.
'IT 초보코딩의 세계 > Go 언어' 카테고리의 다른 글
Go언어의 자료구조 배열과 슬라이스 1장 (6) | 2023.03.29 |
---|---|
Go 언어의 기본 문법 함수 와 클로저 5장 (4) | 2023.03.28 |
Go 언어의 기본 문법 for 구문 3장 (4) | 2023.03.24 |
Go 언어의 기본 문법 연산자와 포인터, if 구문, switch 구문 2장 (0) | 2023.03.24 |
Go 언어란? (6) | 2023.03.23 |
댓글