我正在做一個單元測驗,但是我發現了我不理解的這種資料型別。
Error:
Not equal:
expected: <nil>(<nil>)
actual : *pkgname.StructName((*pkgname.StructName)(nil))
僅供參考,pkgname 是包的名稱,StructName 是結構的名稱
如何創建具有相同資料型別和值“* pkgname.StructName((*pkgname.StructName)(nil)) ”的變數?
它是指向 nil 值的結構指標嗎?
uj5u.com熱心網友回復:
您沒有提及您使用的測驗框架或方法,但是從錯誤來看,最肯定的錯誤是您期望一個nil值(沒有型別),并且您得到一個nil指標值,該指標值具有具有具體基型別的指標型別.
要修復它,您應該期望一個型別化的nil值,而不是一個nil介面值(沒有型別)。
例如:
actualValue := ... // Execute function / method / whatever, obtain testable value
// Test it the way you do
// (Here I assume you do it with a function named expectEqual):
expectEqual((*pkgname.StructName)(nil), actualValue)
請注意,這(*pkgname.StructName)(nil)是一種型別轉換,它將nil指標值轉換為*pkgname.StructName指標型別。
查看相關問題:
將 nil 介面轉換為 Golang 中的指標?
隱藏 nil 值,了解 golang 為何在這里失敗
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409642.html
標籤:
上一篇:Go方法是一流的功能嗎?
