我知道Go在这方面与其他语言有些不同,但我想知道Go语言是否值得自动测试比较中的零指针并返回不等于值为零(比较)而不是创建运行时错误。 Go在这么多领域非常出色,我认为它可以做到这一点。示例如下:比较nil指针变量的值
type cuForm struct {sName string; iUseCount int64; baForm []byte}
var pugForm *cuForm
//***********************************************************
func loadForm (sWanted string) (*cuForm, os.Error) {
//***********************************************************
if (sWanted == pugForm.sName) {
在上面的示例中,如果pugForm为零,则会发生运行时错误。显然,如果只有其中一个值是零,那么至少在逻辑上不可能是相等的。为什么不这样做可能是有原因的,但我认为历史不应该是一个原因。
这可能更适合gonots邮件列表 – nos 2011-05-20 07:49:38
只有* what *值之一? pugForm不是一个被比较的值,它是一个指向包含被比较值的结构的指针。如果它是零,它不指向任何结构 - 这是一个程序逻辑错误来解引用它。 – 2011-06-05 04:21:58