PHP 편집기 Banana는 알려진 유형을 스위치의 유형 매개변수를 가리키는 포인터로 변환하는 방법을 소개합니다. 프로그래밍에서는 프로그램에서 보다 유연한 작업을 수행하기 위해 알려진 유형의 변수를 포인터로 변환해야 하는 경우가 있습니다. 이 변환은 "&" 연산자를 사용하여 수행할 수 있습니다. 변수 이름 앞에 "&" 연산자를 붙여 변수에 대한 포인터로 변환합니다. 이런 방식으로 우리는 프로그램에서 변수를 할당하거나 읽는 대신 변수를 조작하기 위해 포인터를 사용할 수 있습니다. 다음에는 이러한 유형 변환을 수행하는 방법을 자세히 소개하고 여러분의 이해를 돕기 위해 샘플 코드를 제공하겠습니다.
반환 값의 type 매개변수를 기반으로 json 문자열의 바이트 배열을 다른 바이트 배열로 변환하는 함수를 작성하려고 합니다.
제 코드는 다음과 같습니다:
으아악이 코드는 아래와 같이 jsonbytearray의 유형을 t로 변환할 때 type 오류를 발생시킵니다.
으아악이 []byte 유형 변수의 포인터를 일반 유형 반환 값에 할당하는 방법은 무엇입니까?
t
受到any
的约束,所以不能直接转换。您必须断言 &jsonbytearray
实际上与该开关情况下的 *t
동일한 유형으로 인해:
이렇게 하면 컴파일 오류가 사라지지만 특별히 좋은 디자인은 아닙니다. json.unmarshal
专门用于一种类型 (*[]byte
)을 사용해야 하는 경우 일반 기능을 사용하는 대신 호출 사이트를 변경하는 것이 좋습니다.
귀하의 목표는 호출자가 비정렬화하는 대신 바이트 조각을 있는 그대로 얻을 수 있도록 하는 것이라고 가정합니다. 그런 다음 호출 사이트에서
로 함수를 호출할 수 있습니다. 으아악즉, 이 시점에서 여러분은 이미 jsonbytearray
바이트 슬라이스라는 것을 알고 있습니다.
그러면 이 함수를 호출할 이유가 없습니다. 간단히 매개변수의 주소를 얻을 수 있습니다: data := &jsonbytearray
,并在其他地方使用 json.unmarshal
.
위 내용은 알려진 유형을 스위치의 유형 매개변수에 대한 포인터로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!