>백엔드 개발 >Golang >Docopt를 사용할 때 Go에서 `interface{}`를 `string`으로 안전하게 변환하는 방법은 무엇입니까?

Docopt를 사용할 때 Go에서 `interface{}`를 `string`으로 안전하게 변환하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 20:40:20865검색

How to Safely Convert `interface{}` to `string` in Go When Using docopt?

Go에서 인터페이스{}를 문자열로 변환

docopt를 사용하여 명령줄 인수를 구문 분석할 때 결과는 map[string]interface{ 유형의 맵입니다. }. 그러나 이 맵에서 값을 연결하려고 하면 유형 불일치로 인해 오류가 발생할 수 있습니다. 이는 지도의 값이 무엇이든 될 수 있는 인터페이스{} 유형이기 때문입니다. 이 문제를 해결하려면 유형 어설션이 필요합니다.

인터페이스{} 값을 문자열로 변환하려면 .(문자열) 연산자를 사용하세요. 이 연산자는 값이 문자열로 캐스팅될 수 있음을 나타냅니다. 예:

host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)

이 예에서는 "host" 및 "port" 값을 인수 맵에서 가져온 다음 .(string) 연산자를 사용하여 문자열로 변환합니다.

최신 버전의 docopt는 유형 변환을 위한 메소드가 있는 Opts 객체를 제공합니다. 이러한 메서드는 다음과 같이 사용할 수 있습니다.

host, err := arguments.String("<host>")
port, err := arguments.String("<port>")
host_port := host + ":" + port

String() 메서드는 값을 문자열로 변환하여 유형 변환 프로세스를 단순화합니다.

위 내용은 Docopt를 사용할 때 Go에서 `interface{}`를 `string`으로 안전하게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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