Go 구조체에서 설정되지 않은 값과 빈 값 구별
Go에서는 구조체를 정의할 때 다음과 같은 값을 구별해야 할 필요가 있을 수 있습니다. 의도적으로 설정되지 않았으며 단순히 비어 있는 값입니다. 이는 데이터베이스 지속성과 정확한 데이터 처리를 보장하는 데 중요할 수 있습니다.
다음 예를 고려하십시오.
<code class="go">type Organisation struct { Category string Code string Name string }</code>
범주 필드가 설정되지 않았는지 아니면 의도적으로 설정되었는지 확인한다고 가정해 보겠습니다. 빈 문자열로. 필드(예: *string)에 대한 포인터를 사용해도 이 문제가 해결되지 않습니다. 포인터의 0 값은 nil이므로 설정되지 않은 값과 빈 값을 구분할 수 없습니다.
이 문제를 해결하려면 다음을 활용할 수 있습니다. Database/sql 패키지의 sql.NullString과 같은 사용자 정의 유형. NULL 상태를 추적하고 다음 시나리오를 구별할 수 있습니다.
데이터베이스 검색 및 매개변수 바인딩 중에 sql.NullString 유형은 NULL 상태를 자동으로 처리합니다.
예를 들어 NullString 필드를 검색하려면:
<code class="go">err := db.QueryRow("SELECT category FROM organisations WHERE id = ?", id).Scan(&org.Category)</code>
NullString 값을 데이터베이스 매개변수에 바인딩하려면:
<code class="go">_, err := db.Exec("INSERT INTO organisations (category) VALUES (?)", org.Category)</code>
이 접근 방식을 사용하면 설정되지 않은 값과 빈 값을 구별하고 정확한 데이터베이스 지속성을 보장할 수 있습니다.
위 내용은 Go 구조체에서 설정되지 않은 값과 빈 값을 구별하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!