C에 보이스*가 있으니까 골랑이는 어때요?조사해 보았다

결론


할 수 있다

샘플 코드


package main

import (
	"fmt"
	"unsafe"
)

type SSS struct {
	Pointer interface{}
	USafe   unsafe.Pointer
}

func main() {

	num := 10
	sss := "aaaa"

	s1 := SSS{
		Pointer: &num,
		USafe:   unsafe.Pointer(&sss),
	}

	fmt.Printf("%v\n", s1)
	fmt.Printf("%d\n", *(s1.Pointer).(*int))
	fmt.Printf("%s\n", *(*string)(s1.USafe))

	s1.Pointer = &sss
	s1.USafe = unsafe.Pointer(&num)
	fmt.Printf("%v\n", s1)
	fmt.Printf("%s\n", *(s1.Pointer).(*string))
	fmt.Printf("%d\n", *(*int)(s1.USafe))
}

실행 결과


$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
$ go run chk.go
에서 실행
{0xc000096010 0xc0000761e0}
10
aaaa
{0xc0000761e0 0xc000096010}
aaaa
10
가독성, 보수성, 사고 발생 가능성에 대한 확장성을 교환하고 싶습니다.

참고 자료


달콤한 세상

좋은 웹페이지 즐겨찾기