2015-12-09 30 views
5

我试图在Linux上使用Swift 2.2中的错误代码退出命令行实用程序。我试图在this question的解决方案,但我仍然得到一个无法解析的标识符。一个简单的测试脚本复制问题:Linux上的Swift 2.2“使用无法解析的标识符'退出'”

$> cat exit_test.swift 
import Foundation 

guard 0 == 1 else { exit(0) } 

我收到以下错误信息:

$> swift exit_test.swift 
exit_test.swift:3:21: error: use of unresolved identifier 'exit' 
guard 0 == 1 else { exit(0) } 

看来,exit不再与Foundation一起导入,但我不能确定在哪里接下来看一下退出给出特定错误代码的方法。我运行Swift 2.2-dev

$> swift --version 
Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c) 
Target: x86_64-unknown-linux-gnu 
+0

'exit'是作为C标准库的一部分从'Darwin'导入的。没有相应的基金会。 – JAL

+1

在苹果平台上,Foundation可以实时地导入'Darwin'。在Linux上,相当于'Darwin'模块的(粗略)是'Glibc',Foundation可能会或可能不会为您导入它。 – rickster

+0

这是在Linux上。 '进口达尔文'提出'没有这样的模块'达尔文'“。 – Kellen

回答

8

exit(3)是基本的Unix(像)API。在苹果平台上,Darwin模块提供了这种功能,由于Cocoa在很大程度上依赖于这些东西,因此import Foundation也会自动为您提供Darwin

在Linux上,基本的Unix(类似)API位于Glibc模块中,并且import Foundation不会为您自动导入。所以,要得到exit(3)等这样的东西,你自己需要import Glibc

相关问题