golang32 golang의 is a 관계 이번 글에서는 golang의 is a 관계에 대해 알아보겠습니다. 예시 보는게 이해가 빠르므로 바로 예시로 넘어가겠습니다. 위 코드를 보다시피 일반 Player에는 bonus가 없고 Pro에게만 bonus가 있습니다. 그리고 Pro의 구조체를 보면 Player를 포함하고 있습니다. 그런데 Pro는 getSalary 함수를 사용할 수 있을까요? Player와 Pro는 현재 타입이 달라보여서 아래와 같은 방법을 써야할 것 같은 느낌이 듭니다. 이런식으로 Pro의 타입을 받는 함수를 새로 생성해야 될 것 같습니다. 그러나 굳이 이런 함수를 새로 만들지 않아도 작동합니다. 확인을 해보겠습니다. 위 코드의 결과는 100, 150이 출력되고 이는 proPlayer가 Player 타입을 받는 getSalary함수를 .. 2021. 3. 25. golang array와slice 이번 글에서는 golang에서 햇갈릴만한 array와 slice의 차이점을 알아보겠습니다. 1 2 3 4 5 6 func main() { var a = [3]int{1,2,3} b := a b[1] = 22 } cs []안에 숫자를 넣으면 길이가 늘어나지 않는 array가 됩니다. 위 코드의 경우 b의 값을 바꾸었는데 a[1]의 값도 바뀔까요? a의 값은 바뀌지 않습니다. array의 경우 := 연산자를 이용했을 때 call by value 형식으로 넘어가기 때문입니다. 1 2 3 4 5 6 7 func main() { var a = []int{1,2,3} b := a b[1] = 22 } cs 이번에는 slice 코드입니다. 첫번째 코드와 다른점은 []안에 숫자가 없다는 점입니다. slice의 경우에는.. 2021. 3. 23. golang과 함께 알아보는 쿠키 쿠키란? - 쿠키란 쉽게 말해서 서버가 유저의 브라우저에 정보를 심어놓는것이라고 볼 수 있다. 예를들면 자동로그인 같이 미리 기억해놔야하는 정보들을 심어놓았다가 다음에 유저가 서버에게 요청을 할 때 쿠키를 보고 여러가지 처리를 해주는 것이다. 오늘은 간단한 덧셈을 쿠키를 이용해서 해볼건데 아래와 같다. localhost:8080/으로 접속하면 새로운 쿠키가 생긴다. (Value가 0인 쿠키가 생긴다.) localhost:8080/read로 접속하면 현재 쿠키의 값을 볼 수 있다. localhost:8080/addNum으로 접속하면 현재 가지고 있는 쿠키의 값에 11을 더한 쿠키를 새로 받게 된다. 전체코드는 아래와 같다. 기본 http모듈을 사용했으며 쿠키에는 string값이 저장되므로 덧셈에 형변환을 .. 2020. 12. 9. golang 정렬하기 golang으로 정렬하는 법을 찾다가 생각보다 복잡해서 정리할겸 포스팅을 쓰기로 했다. 테스트를 위한 간단한 string 배열이다. 자 이 배열을 정렬하기 위한 코드는? 이럴수가 엄청길다.. 파이썬은 .sort() 하나면 되는데.. 뭐 어쨌든 분석해보기로 하자. 우선 정렬을 위해 sort 모듈을 import 해야한다. 그리고 문제의 부분인데 우선 이걸 이해하기 위해서는 golang의 interface 개념이 있어야 하기 때문에 혹시 모른다면 공부를 하고 오자. sort.Sort()가 인자로 interface를 받기 때문에 Sort 함수에 데이터를 넣어주기 위해서는 interface를 구현해야 한다. 그렇기 때문에 인터페이스의 정의된 함수인 Len, Swap, Less 함수를 구현해야하고 이걸 구현하기 위.. 2020. 10. 22. 이전 1 ··· 4 5 6 7 8 다음