Ответ 1
Утверждение типа утверждает, что t
(тип интерфейса) на самом деле является aType
и t
будет aType
; а именно, завернутый в интерфейс t
. Например. если вы знаете, что ваш var reader io.Reader
на самом деле является *bytes.Buffer
, вы можете сделать var br *bytes.Buffer = reader.(*bytes.Buffer)
.
Преобразование типа преобразует один (неинтерфейсный) тип в другой, например. a var x uint8
to и int64 как var id int64 = int64(x)
.
Правило большого пальца. Если вам нужно обернуть свой конкретный тип в интерфейс и хотите, чтобы ваш конкретный тип возвращался, используйте утверждение типа (или переключатель типа). Если вам нужно преобразовать один конкретный тип в другое, используйте преобразование типа.