这个完整的Swift程序提供退出代码255:
import Darwin
exit(-1)
从Xcode内部运行时,我得到Program ended with exit code: 255
;或者在命令行echo $?
上编译和运行时生成255
;在某些时候,Int32(-1)
被截断并解释为无符号的8位整数。
我不知道这种转换发生在哪里(可能在某个地方的Darwin或者当值传递到主机shell或操作系统?),但是因为exit()
是Darwin库函数(不是Swift)语言功能),已经特定于平台,为什么定义为Int32
而不是UInt8
?
答案 0 :(得分:3)
因为它是标准的C exit
函数,它具有以下原型:
void exit(int);
在您的系统上int
为32位,这就是Swift使用Int32
的原因。
截断发生在C exit
函数内部。