package main
import "fmt"
import "unsafe"
func main() {
var myname string = "hello world"
ptr := (*uint8)(unsafe.Add(unsafe.Pointer(&myname), 8))
*ptr = 1
fmt.Println("the value :",myname)
fmt.Println("the size :",unsafe.Sizeof(myname))
}
``8`` is the pointer ``size`` in this case we are dealing with ``ascii`` english characters we should keep the pointer size ``8`` and lastly we did type conversion because we are returning a pointer that has no type so we need to cast the pointer and give it a type but what confuses me ``unsafe.Add`` this meant to do ``slicing`` as i worked with a little bit and from what i understood !!