这是在golang的铸造?

paxPayment, ok = dataObject.(*entities.PassengerPayment)

括号用于什么? 我不确定这次作业是怎么回事。

你需要更多的细节来回答这个问题吗?

这只是一个types断言 。 types断言可以用来:

  • 接口types的值中获取具体types的值
  • 或者获得不同于初始types的接口types的值(具有不同方法集合的接口,实际上不是原始子集的子集,因为这可以简单地通过简单的types转换来获得)。

引用规范:

对于接口types的expression式x和typesT ,主expression式

 x.(T) 

断言x不是nil ,存储在x中的值是typesT 符号x.(T)被称为types断言

更确切地说,如果T不是接口types,则x.(T)断言x的dynamictypes与 Ttypes相同 。 在这种情况下, T必须实现 x的(接口)types; 否则types断言是无效的,因为x不能存储typesT的值。 如果T是接口types,则x.(T)断言x的dynamictypes实现了接口T

更具体地说,你的例子是一个特殊的forms,它也报告types断言是否成立。 如果没有, ok将是false ,如果断言成立, ok将是true

这种特殊的forms永远不会恐慌不像以下forms:

 paxPayment = dataObject.(*entities.PassengerPayment) 

如果dataObject不包含types*entities.PassengerPayment的值将会恐慌。