Golang
[묘공단] Go언어 고급 22-23장(자료구조, 에러 핸들링)
dayae_dev
2024. 3. 9. 20:44
자료구조
- 배열
- 원소마다 메모리가 연속적으로 할당되어 있다.
- 리스트
- 메모리 할당이 연속적이지 않다.
- 원소 추가 및 삭제의 시간복잡도는 O(1)로, 배열에 비해 처리가 빠르다.
- 링
- 시작과 끝이 연결되어 원형 구조를 이룬다.
- 맵
- 키, 값의 쌍으로 이루어진 데이터 구조이다.
- 데이터를 빠르게 처리할 수 있다.
에러 핸들링
Go에서는 Error 인터페이스를 통해 에러를 반환한다.
에러는 errors.New() 혹은 fmt.Errorf()함수를 통해 만들 수 있다.
사용자 정의 타입으로 Error()메서드를 정의해 error 객체를 만들 수 있다.
에러를 감싸서 새로운 에러를 만들수도 있고(에러 랩핑), 감싸진 에러는 다시 풀어서 에러 처리를 할 수 있다.
감싸진 에러를 다시 풀 때는 errors 패키지의 As()함수를 통해 사용한다.
프로그램을 사용하다가 계속 사용하기 어려운 상황에 직면할 경우, 프로그램의 흐름을 중지시키는 기능을 패닉이라고 한다.
Go에서는 프로그램을 즉시 종료할 때 내장함수인 panic()함수를 통해서 하고 복구는 recover() 함수를 통해 할 수 있다.
해당 글은 [Tucker의 Go 언어 프로그래밍] 22장~23장을 읽고 공부한 글입니다.