[Go] unsafe

Go๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ด€๋ฆฌํ˜•-๋„ค์ดํ‹ฐ๋ธŒ ์–ธ์–ด์ง€๋งŒ, ๊ด€๋ฆฌ๋ฅผ ์–ด๋А์ •๋„ ํฌ๊ธฐํ•˜๊ณ  unsafeํ•œ ํฌ์ธํ„ฐ ํ•ธ๋“ค๋ง์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

unsafe ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.
ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์œ„ํ—˜ํ•œ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ unsafe์˜ Pointer ํ•จ์ˆ˜๋Š” ํŠน์ • ํฌ์ธํ„ฐ๊ฐ’์„ ํƒ€์ž…์ด ์—†๋Š” ๋ฒ”์šฉ ํฌ์ธํ„ฐ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
C์–ธ์–ด์˜ "void*"๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์ฃผ์†Œ๊ฐ€ ์ฐํžˆ๋Š”๊ฑธ ๋ณผ์ˆ˜์žˆ๋‹ค.

์ด ํฌ์ธํ„ฐ์˜ ์žฅ์ ์€, ๋ญ˜๋กœ๋“  ๊ฐ•์ œ์บ์ŠคํŒ…์„ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์›๋ž˜์˜ ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ…ํ•ด์„œ ์—ญ์ฐธ์กฐ๋ฅผ ํ•˜๊ณ  ์จ๋จน์„ ์ˆ˜๋„ ์žˆ๊ณ 

๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ๋„ ๊ฐ•์ œ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ ‡๋‹ค.


์ฐธ์กฐ
https://w.cublr.com/programming/go/unsafe-casting/
https://pkg.go.dev/unsafe