Pointers 将指针变量取消引用到Golang中未引用的同一类型
我的应用程序有一个类型事件:Pointers 将指针变量取消引用到Golang中未引用的同一类型,pointers,go,reference,Pointers,Go,Reference,我的应用程序有一个类型事件: type Event struct { Id string } 有时我会引用此类型的实例,有时没有: var event *Event 但函数需要不带指针的类型: func ProcessEvent(event Event) 因此,我不能将指针var用于此函数。也许有一种将*事件转换为事件的解决方案?或者我需要重构我的代码,让所有代码都没有指针 我使用此解决方案,但我不喜欢它,因为我需要复制我的代码: event2 := Event{ Id:
type Event struct {
Id string
}
有时我会引用此类型的实例,有时没有:
var event *Event
但函数需要不带指针的类型:
func ProcessEvent(event Event)
因此,我不能将指针var用于此函数。也许有一种将*事件转换为事件的解决方案?或者我需要重构我的代码,让所有代码都没有指针
我使用此解决方案,但我不喜欢它,因为我需要复制我的代码:
event2 := Event{
Id: event.Id
}
要从指针转换,您需要取消引用指针:
*事件
发件人:
对于指针类型为*T
的操作数x
,指针间接*x
表示x
指向的T
类型的变量。如果x
为nil
,尝试计算*x
将导致运行时死机
“带引用的此类型”,请停止将指针视为“引用”来帮助自己。Go根本没有引用或通过引用传递。其他一些语言(如C++)有一种特殊的语法和引用概念,不同于指针。