У меня есть этот метод, где я получаю int64
параметр. Параметр используется в некоторых областях, а затем предполагается передать его другому методу (из внешней библиотеки), который ожидает другой тип: type AcctInterimInterval uint32
Я пытался преобразовать его в uint32
, но скрипт жалуется на это: invalid type assertion: ... (non-interface type int on left)
.
Я также пытался преобразовать его в AcctInterimInterval
, но на этот раз с другой ошибкой: interface conversion: interface {} is int, not main.AcctInterimInterval
Вот мой тестовый код:
package main
import (
"fmt"
)
// defined in some other lib
type AcctInterimInterval uint32
// defined in some other lib
func test(value AcctInterimInterval){
fmt.Println(value)
}
func main() {
// int received externally
interval := 60
var acctInterval interface{} = interval
test(acctInterval.(AcctInterimInterval))
}
Связанная игровая площадка: https://play.golang.org/p/tTW5J2FIAy3