LINUX.ORG.RU

История изменений

Исправление proud_anon, (текущая версия) :

Теперь понятно, чего ты хочешь. Это невозможно. Тебе приходит по сети набор байт. Что к чему относится, рантайм никак определить не может.

Тебе нужно какое-то полноценное решение для сериализации. Например, можно посмотреть на пакет encoding из стандартной библиотеки: https://golang.org/pkg/encoding/

Или я всё ещё неправильно понимаю?

в свое примере я показал, что в рантайме можно понять, что это *int32, но я хочу в чистом виде получить int32, чтобы отдать в одну функцию, которая знает, что нужно делать с таким типом.

Если переменная типа *int32 содержит nil, то получить значение, на которое она ссылается, невозможно, потому что этого значения не существует. Но можно, например, написать:

var x int32
if ptrvar == nil {
    x = int32(0)
} else {
    x = *ptrvar
}

Исправление proud_anon, :

Теперь понятно, чего ты хочешь. Это невозможно. Тебе приходит по сети набор байт. Что к чему относится, рантайм никак определить не может.

Тебе нужно какое-то полноценное решение для сериализации. Например, можно посмотреть на пакет encoding из стандартной библиотеки: https://golang.org/pkg/encoding/

Или я всё ещё неправильно понимаю?

Исходная версия proud_anon, :

Теперь понятно, чего ты хочешь. Это невозможно. Тебе приходит по сети набор байт. Что к чему относится, рантайм никак определить не может.

Тебе нужно какое-то полноценное решение для сериализации. Например, можно посмотреть на пакет encoding из стандартной библиотеки: https://golang.org/pkg/encoding/