분류 전체보기110 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. 비트코인의 51% attack 비트코인에서 51% 공격이란 말을 들어본적 있으실겁니다. 이번 글에서는 그게 정확히 무엇인지 알아보겠습니다. Mastering Bitcoin에 나오는 예시로 설명해보겠습니다. Bob, Alice, Tony 이렇게 세 사람이 있습니다. Bob과 Alice는 공범이고 Tony는 물건을 판매하는 사람입니다. Alice가 Tony에게 어떠한 물건을 비트코인을 주고 구입하려 합니다. Alice가 비트코인 송금을 한 후 몇분 후 Tony는 Alice의 transaction이 포함된 1개의 블록이 생성된걸 확인하고 물건 판매를 완료하였습니다. 그럼 현재 블록상태는 아래와 같을 것입니다. ㅁ - ㅁ - ㅁ - ㅁ 2021. 3. 24. 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. 비트코인의 Mining pool ... 2021. 3. 22. 이전 1 ··· 14 15 16 17 18 19 20 ··· 28 다음