ExpertiDict

Go · Avançado · Inglês · Técnico

unsafe

/ʌnˈseɪf/substantivo

Pacote que dá acesso a operações fora do sistema de tipos do Go, como unsafe.Pointer, Sizeof e String, para converter ponteiros e inspecionar a memória.

Onde usar

Raramente aparece em código de aplicação; é usado em bibliotecas de alto desempenho, serialização e interação com C. Um uso incorreto causa corrupção de memória sem aviso do compilador.

Em código

b := []byte("olá")
s := unsafe.String(&b[0], len(b))
b[0] = 'O'
fmt.Println(s) // Olá: compartilha memória

Exemplos

Avoid unsafe unless you really need the speed.

Evite o unsafe a menos que você precise mesmo da velocidade.

The string shares memory with the byte slice because of unsafe.

A string compartilha memória com a slice de bytes por causa do unsafe.

Cuidado

Não é coberto pela garantia de compatibilidade do Go 1: um truque com unsafe pode quebrar em uma versão nova.

Veja também

Todos os termos de Go