>백엔드 개발 >Golang >Go가 C의 Void 포인터와 동등한 것은 무엇입니까?

Go가 C의 Void 포인터와 동등한 것은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-16 16:14:11922검색

What is Go's Equivalent to C's Void Pointers?

C의 Void 포인터에 해당하는 Go

Go에서 모든 유형을 포함할 수 있는 데이터 구조를 생성하려면 빈 인터페이스 활용을 고려하세요.

빈 인터페이스: 인터페이스{}

Go 프로그래밍 언어 사양에 따르면 "모든 유형은 빈 인터페이스를 구현합니다." 즉, 인터페이스{} 유형의 변수를 정의하고 인터페이스가 아닌 모든 유형의 값을 할당할 수 있습니다.

var value interface{} = 10

이 기능을 사용하면 모든 유형의 값을 저장할 수 있는 데이터 구조를 생성할 수 있습니다. C의 void 포인터와 유사합니다. 예를 들어 각 노드가 모든 유형의 값을 포함할 수 있는 연결 목록을 정의할 수 있습니다.

type Node struct {
    Value interface{}
    Next  *Node
}

업데이트: 모든 별칭

Go 1.18부터 내장 별칭 any가 인터페이스{}의 동의어로 도입되었습니다. 빈 인터페이스에 대해 더 간결하고 설명적인 이름을 제공합니다.

var value any = 10

결론

빈 인터페이스 또는 해당 별칭 any를 활용하면 다음 값을 저장할 수 있는 Go 데이터 구조를 만들 수 있습니다. 모든 유형, C의 void 포인터와 유사한 기능을 달성합니다.

위 내용은 Go가 C의 Void 포인터와 동등한 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.