为什么一些编程语言要引入像C语言中的一些不安全特性那?
比如,
Java语言拥有sun.misc.Unsafe;
C#语言内置unsafe关键字等一样;
Go语言有unsafe包;
为什么这些高级语言需要unsafe的功能那?
这样做是为了实现一些低级代码,以满足运行时或性能敏感系统对性能的需求。
go的unsafe包所具有的独一无二的穿透类型安全保护的能力对开发人员依旧充满了诱惑力,它首先就被广泛应用于Go标准库和Go运行时的实现当中,reflect、sync、syscall和runtime包都是unsafe包的重度“用户”,这些包有的需要绕过Go类型保护直接操作内存,有的对性能敏感,还有的与操作系统或C语言低级代码交互频繁。
#头条创作挑战赛# #生机大会# #在头条看见彼此# #中国产业名片#