본문 바로가기
반응형

Golang/Basic9

Golang if문에 세미콜론(;) Go언어에서 if문 사용 시 세미콜론을 사용할 수 있다. 예를 들면 다음과 같다. 아래의 두 예제는 같은 의미이다. 첫번째 예제) if v, err := Read(); err == nil { // do something with v, because Read() did not // had an error (err) } 두번째 예제) if v, err := Read(); err == nil { // do something with v, because Read() did not // had an error (err) } 두 문법의 결과는 같지만 차이점은 첫 번째 예제에서는 v와 err의 범위는 if {}블록으로 제한된다. 두 번째 예제에서는 v와 err은 선언된 블록에 속해 있다. 즉, if {}에 속해있지 .. 2023. 3. 4.
Golang 헷갈리는 문법 복습 - interface 인터페이스가 어떤 용도로 사용되는지, 왜 이런 식으로 만들어 졌는지에 대한 이해가 선행되면 정의를 이해하는 게 훨씬 쉽다. 그래서 우선 인터페이스가 왜 쓰이는지에 대해 설명 후, 구체적인 것에 대해서는 이후에 설명하도록 하겠다. 1. Interface를 사용하는 이유 Go 언어는 타입에 민감하다. 함수의 경우 마찬가지다. 함수는 정해진 타입의 매개변수만 받고, 정해진 타입에 맞게 연산을 하고, 정해진 타입에 맞게 결과를 반환한다. 하지만 여러타입에 대해 적용할 수 있는 함수를 만들어야 할 때도 있다. Go 언어에서 이러한 함수를 만들기 위해서는 각 타입별로 적용 가능한 함수들을 만들고, 이를 모두 합쳐서 하나의 큰 함수로 만드는 것이다. 하지만 여기서는 막히는 부분이 하나 있다. Go언어는 매개변수를 받.. 2022. 2. 19.
Golang 헷갈리는 문법 복습 - 배열과 슬라이스 배열 Go언어에서 배열은 길이가 고정되어 있고, 인덱스는 0부터 시작한다. var a [5]int // int 형이며 길이가 5인 배열 선언 a[2] = 7 // 배열의 세 번째 요소에 7 대입 fmt.Println(a) // [0 0 7 0 0] var a [5]int = [5]int{1, 2, 3, 4, 5} // int형이며 길이가 5인 배열을 선언하고 초기화 var b [5]int{1, 2, ,3, 4, 5} // 배열을 선언할 때 자료형과 길이 생략 c := [5]int{1, 2, 3, 4, 5} // 배열을 선언할 때 var 키워드, 자료형과 길이 생략 배열의 크기에 ...을 사용하면 초기화할 값의 개수에 따라 자동으로 크기가 설정된다. a := [5]int{1, 2, 3, 4, 5} // 배.. 2022. 2. 19.
Zero 부터 시작하는 Golang - 기본문법3 에러 Go는 내장 타입으로 error 라는 인터페이스(Interface) 타입을 갖는다. Go 에러는 이 error 인터페이스를 통해서 주고 받게 되는데, 이 인터페이스는 다음과 같은 하나의 메소드를 갖는다. 개발자는 이 인터페이스를 구현하는 커스텀 에러 타입을 만들 수 있다. type error interface { Error() string } 에러 처리 함수가 결과와 에러를 함께 반환한다면, 이 에러가 nil 인지를 체크해서 에러가 없는 지를 확인할 수 있다. 아래의 예제에서 os.Open() 함수는 func Open(name string) (file *File, err error)와 같은 함수 원형을 갖는 것으로 첫 번째는 File 포인터를 두 번째는 error 인터페이스를 반환한다. 그래서 이 .. 2022. 2. 19.
반응형