목차
질문 내용
해결 방법
백엔드 개발 Golang Golang의 일반적인 구조/인터페이스 목록

Golang의 일반적인 구조/인터페이스 목록

Feb 13, 2024 pm 05:30 PM
네트워크 프로그래밍

Golang 中的通用结构/接口列表

php 편집기 Baicao는 이 글에서 Golang의 일반적인 구조/인터페이스 목록을 소개합니다. Golang은 배우기 쉽고 효율적이며 신뢰할 수 있는 오픈 소스 프로그래밍 언어로, 네트워크 프로그래밍, 클라우드 컴퓨팅 및 기타 분야에서 널리 사용됩니다. Golang에서 공통 구조와 인터페이스는 코드 재사용성과 확장성을 달성하는 데 도움이 되는 매우 중요한 개념입니다. 이 글의 소개를 통해 독자들은 Golang의 공통 구조와 인터페이스를 더 잘 이해하고 적용하며 프로그래밍 기술을 향상시킬 수 있다고 믿습니다.

질문 내용

Go에서 일반적인 구조/인터페이스 목록을 얻을 수 있는 방법이 있나요?

내가 이루고 싶은 것은 이것이다.

으아악

이 오류가 발생했습니다.

으아악

그래서 내가 올바르게 이해했다면 in go any는 그 자체의 유형입니다. "런타임이 원하는 모든 유형"의 동의어는 아닙니다. 내 질문은 이런 일을 할 수 있습니까?입니다.

해결 방법

여기에서 수행하려는 작업은 go의 제네릭이 유형 삭제가 가능하다고 예상한다는 것을 의미합니다(Java 제네릭과 마찬가지로). 그러나 그것은 진실이 아니다.

다음과 같은 List[int],这意味着它的 Add 방법이 있습니다.

으아악

그런 다음 해당 인터페이스를 구현하는 객체 조각에 추가해 보세요.

으아악

이제 intint 可以用作 any로 사용할 수 있다고 생각할 수도 있습니다. 맞습니다. 사용할 수 있지만 다음을 보면

으아악

해당 슬라이스의 모든 요소에 Add 方法,该方法采用 any 유형의 매개변수를 취하는 Add 메소드가 있다고 말씀하셨는데, 이는 다음을 의미합니다.

으아악

항상 유효한 호출이어야 합니다. 만약 s[0] 的类型为 List[int] (如您的代码片段中的情况),则这不成立。您将尝试将字符串附加到 Elements ,其类型为 []int.

반전을 허용해야 한다는 말이 있습니다

으아악

List[any] 将接受 int 매개변수인 것 같지만 이 역시 허용되지 않습니다. 이는 어떤 경우에는 유용할 수 있지만 많은 경우에는 문제가 될 수 있습니다.

기본적으로 Go의 제네릭은 컴파일 타임에 처리되는 것입니다. List[int] 时,编译器将创建一个类似 List_int 的类型,并在该类型上实现 Add(el int) 方法,与您最终使用的任何其他 List 类型相同。这些类型都不会具有 Add(any) 方法,除非您创建 List[any]를 만들 때. 컴파일러 지원 상용구 코드 생성으로 생각하십시오. 런타임 유형 삭제가 아닙니다.

결과: List[int]List[any] 서로 완전히 다른 유형이므로 같은 유형인 것처럼 슬라이스로 나란히 앉을 수 없습니다. 원하는 것을 하고 싶다면 다음과 같이 하세요:

으아악

주어진 값이 목록의 기본 유형과 호환되는지 확인하기 위해 유형 어설션을 사용하는 any 값 접근 방식을 취하고, 그렇다면 해당 값을 추가하세요. 그런 다음 다음과 같이 단일 슬라이스에 추가할 수 있습니다.

으아악

그러나 실제로 이런 일을 하면 코드는 X-Y 문제를 외치며 문제를 해결하기 위해 Y(제네릭)를 사용하려고 합니다. 실제 문제는 X입니다. 문제를 해결하는 가장 좋은 방법은 무엇입니까?

위 내용은 Golang의 일반적인 구조/인터페이스 목록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C++ 오픈 소스 라이브러리란 무엇입니까? C++ 오픈 소스 라이브러리란 무엇입니까? Apr 22, 2024 pm 05:48 PM

C++는 다음 기능을 다루는 풍부한 오픈 소스 라이브러리 세트를 제공합니다. 데이터 구조 및 알고리즘(표준 템플릿 라이브러리) 멀티스레딩, 정규식(Boost) 선형 대수(Eigen) 그래픽 사용자 인터페이스(Qt) 컴퓨터 비전(OpenCV) 기계 학습 (TensorFlow) 암호화 (OpenSSL) 데이터 압축 (zlib) 네트워크 프로그래밍 (libcurl) 데이터베이스 관리 (sqlite3)

C++ 함수는 네트워크 프로그래밍에서 DNS 쿼리를 어떻게 처리합니까? C++ 함수는 네트워크 프로그래밍에서 DNS 쿼리를 어떻게 처리합니까? Apr 27, 2024 pm 06:39 PM

C++ 표준 라이브러리는 네트워크 프로그래밍에서 DNS 쿼리를 처리하는 함수를 제공합니다. gethostbyname(): 호스트 이름을 기반으로 호스트 정보를 찾습니다. gethostbyaddr(): IP 주소를 기반으로 호스트 정보를 찾습니다. dns_lookup(): DNS를 비동기적으로 확인합니다.

Python 시험에는 몇 레벨이 있나요? Python 시험에는 몇 레벨이 있나요? Apr 02, 2024 pm 06:00 PM

Python의 기본 구문, 고급 기능, 고급 개념 및 기본 메커니즘 등을 마스터하기 위해 초급부터 고급까지 12개 레벨의 Python 시험이 있으며 점차 난이도가 높아집니다.

Java 네트워크 프로그래밍의 일반적인 프로토콜은 무엇입니까? Java 네트워크 프로그래밍의 일반적인 프로토콜은 무엇입니까? Apr 15, 2024 am 11:33 AM

Java 네트워크 프로그래밍에서 일반적으로 사용되는 프로토콜은 다음과 같습니다. TCP/IP: 안정적인 데이터 전송 및 연결 관리에 사용됩니다. HTTP: 웹 데이터 전송에 사용됩니다. HTTPS: 암호화를 사용하여 데이터를 전송하는 보안 버전의 HTTP입니다. UDP: 빠르지만 불안정한 데이터 전송용입니다. JDBC: 관계형 데이터베이스와 상호 작용하는 데 사용됩니다.

golang을 배우는 데 시간이 얼마나 걸립니까? golang을 배우는 데 시간이 얼마나 걸립니까? Apr 02, 2024 pm 07:48 PM

Golang을 마스터하는 데 걸리는 시간은 사람마다 다르지만 일반적으로 몇 달에서 몇 년이 걸립니다. 학습 단계에는 기본(1~2개월), 중급(3~6개월), 고급(6~12개월 이상)이 포함됩니다. 학습을 가속화하는 요소에는 지속적인 연습, 프로젝트 작업, 커뮤니티 참여 및 온라인 리소스가 포함됩니다. 영향을 미치는 요인에는 이전 프로그래밍 경험, 학습 빈도 및 학습 자료가 포함됩니다.

Golang 공통 함수 주소 확인 가이드 Golang 공통 함수 주소 확인 가이드 Apr 08, 2024 pm 02:18 PM

Go 언어에서 주소를 구문 분석하는 주요 기능은 다음과 같습니다. net.ParseIP(): IPv4 또는 IPv6 주소를 구문 분석합니다. net.ParseCIDR(): CIDR 태그를 구문 분석합니다. net.ResolveIPAddr(): 호스트 이름 또는 IP 주소를 IP 주소로 확인합니다. net.ResolveTCPAddr(): 호스트 이름과 포트를 TCP 주소로 확인합니다. net.ResolveUDPAddr(): 호스트 이름과 포트를 UDP 주소로 확인합니다.

C++ 함수는 네트워크 프로그래밍에서 네트워크 보안을 어떻게 구현합니까? C++ 함수는 네트워크 프로그래밍에서 네트워크 보안을 어떻게 구현합니까? Apr 28, 2024 am 09:06 AM

C++ 기능은 네트워크 프로그래밍에서 네트워크 보안을 달성할 수 있습니다. 1. 암호화 알고리즘(openssl)을 사용하여 통신을 암호화합니다. 2. 디지털 서명(cryptopp)을 사용하여 데이터 무결성 및 발신자 신원을 확인합니다. (htmlcxx)는 사용자 입력을 필터링하고 삭제합니다.

Java 기본부터 실제 애플리케이션까지: 빠르게 시작하는 방법은 무엇입니까? Java 기본부터 실제 애플리케이션까지: 빠르게 시작하는 방법은 무엇입니까? May 08, 2024 am 08:30 AM

Java 입문 가이드: 기본 구문 소개(변수, 연산자, 제어 흐름, 객체, 클래스, 메서드, 상속, 다형성, 캡슐화), 핵심 Java 클래스 라이브러리(예외 처리, 컬렉션, 제네릭, 입력/출력 스트림, 네트워크 프로그래밍, 날짜 및 시간 API), 실제 사례(코드 예제를 포함한 계산기 애플리케이션).

See all articles