php 편집자 Baicao는 "Unmarshalling Dynamic YAML Comments"라는 제목의 Golang에 관한 기사를 가져왔습니다. 이 글에서는 Golang에서 주석이 포함된 YAML 파일을 구문 분석하고 주석 정보를 해당 데이터와 연결하는 방법을 자세히 소개합니다. 이 글을 통해 Go 언어의 yaml.v3 패키지를 사용하여 이 기능을 구현하는 방법을 배우고 자신의 프로젝트에 유연하게 적용할 수 있습니다. 당신이 초보자이든 숙련된 개발자이든 이 글은 귀중한 지식과 팁을 제공할 것입니다. 시작하자!
다음과 같이 struct
的注释并使用 yaml.unmarshal
을 동적으로 변경하고 싶습니다.
이로 인해 panic:reflect:reflect.value.set using unaddressable value [recovered]
这样的错误,我认为这是因为 node.decode
와 같은 항목이 포인터와 함께 사용되지 않게 됩니다. 그렇다면 새로운 유형의 포인터를 어떻게 생성합니까?
다음은 작동 중인 업데이트 데모입니다.
으아악두 가지 주요 변경 사항:
할 것이다 newvalue.interface()
替换为 newvalue.addr().interface()
. (이 예를 참조하세요: https://www.php.cn/link/e96c7de8f6390b1e6c71556e4e0a4959 a>)
할 것이다 newvalue := value.convert(newtype)
替换为 newvalue := reflect.newat(newtype, unsafe.pointer(u)).elem()
.
우리가 이렇게 하는 이유는 value :=reflect.valueof(*u)
中的 value
是不可寻址的(您可以使用 fmt.printf("%v", value.addr())
进行验证。它会出现错误并显示消息 panic : 不可寻址值的reflect.value.addr(
).
위 내용은 golang: 동적 YAML 주석 정리 해제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!