자료구조
- 배열
- 원소마다 메모리가 연속적으로 할당되어 있다.
- 리스트
- 메모리 할당이 연속적이지 않다.
- 원소 추가 및 삭제의 시간복잡도는 O(1)로, 배열에 비해 처리가 빠르다.
- 링
- 시작과 끝이 연결되어 원형 구조를 이룬다.
- 맵
- 키, 값의 쌍으로 이루어진 데이터 구조이다.
- 데이터를 빠르게 처리할 수 있다.
에러 핸들링
Go에서는 Error 인터페이스를 통해 에러를 반환한다.
에러는 errors.New() 혹은 fmt.Errorf()함수를 통해 만들 수 있다.
사용자 정의 타입으로 Error()메서드를 정의해 error 객체를 만들 수 있다.
에러를 감싸서 새로운 에러를 만들수도 있고(에러 랩핑), 감싸진 에러는 다시 풀어서 에러 처리를 할 수 있다.
감싸진 에러를 다시 풀 때는 errors 패키지의 As()함수를 통해 사용한다.
프로그램을 사용하다가 계속 사용하기 어려운 상황에 직면할 경우, 프로그램의 흐름을 중지시키는 기능을 패닉이라고 한다.
Go에서는 프로그램을 즉시 종료할 때 내장함수인 panic()함수를 통해서 하고 복구는 recover() 함수를 통해 할 수 있다.
해당 글은 [Tucker의 Go 언어 프로그래밍] 22장~23장을 읽고 공부한 글입니다.
'Golang' 카테고리의 다른 글
[묘공단] Go언어 프로그래밍 27-28장(SOLID, 테스트와 벤치마크) (0) | 2024.03.28 |
---|---|
[묘공단] Go언어 고급 24-25장(고루틴, 동시성 프로그래밍, 채널, 컨텍스트) (0) | 2024.03.11 |
[묘공단] Go언어 고급 20-21장(인터페이스, 함수 고급) (1) | 2024.03.09 |
[묘공단] Go언어 고급 18-19장(슬라이스, 메서드) (0) | 2024.02.05 |
[묘공단] Go언어 기초 15-17장(문자열, 패키지) (0) | 2024.01.23 |