2025/01/01 2

Golang (Go언어) 제네릭 프로그래밍(Generic Programming) 3/3

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 제네릭 타입- 타입을 파라미터를 이용해서 여러 타입에 동작하는 새로운 타입을 만들 수 있음.type Node[T any] struct { val T next *Node[T]} - Node 구조체는 타입 파라미터를 사용해서 val 필드 타입이 어떤 타입이든 가능하도록 정의함. package mainimport "fmt"type Node[T any] struct { val T next *Node[T]}func NewNode[T any](v T) *Node[T] { // T타입의 val 필드값을 갖는 객체 생성 return &Node[T]{val: v}}func (n *Node[T]) Push(v T) *Node[T] { // No..

Language/Golang 2025.01.01

Golang (Go언어) 제네릭 프로그래밍(Generic Programming) 2/3

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 인터페이스(Interface)와 타입 제한자 차이- 하나의 Interface가 있고, String() 메서드를 가지고 있으면 이는 string 타입들을 다 해당 Interface로 사용될 수 있음.tpye Stringer interface { String() string} - 타입 제한은, 동일하게 interface라고 사용하지만 틸드(~)를 사용하여 정의된 타입들 중 하나가 가능함.tpye Integer interface { ~int8 | ~int16 | ~int32 | int64 | ~int} → 같은 키워드인 인터페이스를 동일하게 사용하였지만, 둘 다 타입을 제한하는 목적으로 사용한다고 볼 수 있음.- 인터페이스는 해당 조건에 ..

Language/Golang 2025.01.01