Passe fatias Go como parâmetros de array C

Eu descobri (enquanto trabalhava com o excelente invólucro OpenGL, GoGL ) que frequentemente preciso passar um array C ‘simples’ para a API OpenGL subjacente. Por exemplo, a função glBufferData requer um ponteiro para um array float C.

Eu prefiro trabalhar com fatias, então não ficou imediatamente claro para mim como eu poderia passá-las para OpenGL conforme necessário. Algumas pesquisas no Google e experimentação produziram a resposta: Sempre que você tiver um Go [] int e quiser passá-lo para um C * int, você pode fazer:

intSlice := []int{0, 1, 2, 3, 4}
some_func_requiring_intptr
( &intSlice[0] )

Fazer um & intSlice não funcionará, pois isso fornece o endereço da fatia, não o array dentro dela. Provavelmente óbvio para os profissionais, mas espero que poupe algum tempo para alguém novo em Go.