tgoop.com/go_interview_lib/272
Create:
Last Update:
Last Update:
💬 Как получить из среза массив и для чего это может быть нужно?
1. С использованием unsafe
:
package main
import (
"fmt"
"unsafe"
)
func main() {
slice := []int{1, 2, 3}
arrayPtr := (*[3]int)(unsafe.Pointer(&slice[0]))
fmt.Println(*arrayPtr)
}
2. С использованием
copy
:package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
var array [3]int
copy(array[:], slice)
fmt.Println(array)
}
Такое преобразование может потребоваться, когда мы хотим использовать срез как ключ в типе
map
. Поскольку в Go ключи мапы должны быть comparable, мы можем использовать массив с фиксированным размером вместо среза.
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/272