Можно ли преобразовать указатель в определенное значение в срез?Использовать указатель на значение как срез
Например, я хочу прочитать один байт от io.Reader
до uint8
переменной. io.Reader.Read
принимает разрез в качестве аргумента, поэтому я не могу просто предоставить ему указатель на мою переменную, как я бы сделал в C.
Я думаю, что создание куска длиной 1, емкость 1 из указателя - безопасная операция. Очевидно, что он должен быть таким же, как создание среза из массива длиной 1, что разрешено. Есть ли простой способ сделать это с помощью простой переменной? Или, может быть, я что-то не понимаю и есть причины, почему это запрещено?
Да, я хотел использовать срез, чтобы обеспечить доступ к переменной. Так что это невозможно сделать, не прибегая к небезопасным методам? –
Go не допускает преобразования между uint8 и [1] uint8 (что звучит довольно безопасно для меня). Итак, насколько я знаю, «небезопасный» - единственный способ сделать это. И если я ошибаюсь, мне интересно узнать о лучшем решении. – ANisus
Мой ответ на прямой вопрос: «Возможно ли это ...», и да, это так. Но на самом деле я бы также предложил использовать решение jnml. – ANisus