Swift 5.7.1环境下Swift Package Manager是否支持正则字面量?
解决Swift Package Manager编译正则字面量的问题
- 正则字面量是Swift 5.7正式引入的特性,你的Swift 5.7.1版本本身支持,但需要在SPM配置中明确启用对应版本的语言特性,具体解决方法如下:
修改Package.swift配置文件
在你的Package.swift里,明确指定Swift语言版本为5.7及以上,同时确保目标平台版本满足Swift 5.7的支持要求(比如macOS 13+、iOS 16+等):let package = Package( name: "YourPackage", platforms: [ .macOS(.v13), .iOS(.v16), // 根据实际需求添加其他平台版本 ], products: [ .executable(name: "YourExecutable", targets: ["YourTarget"]), ], targets: [ .executableTarget(name: "YourTarget", path: "Sources"), ], swiftLanguageVersions: .v5_7 )临时编译指定Swift版本
如果不想修改Package.swift,可以在执行编译命令时通过参数强制指定Swift版本:swift build -Xswiftc -swift-version 5.7
原因说明
Xcode创建项目时会自动根据当前Xcode版本(对应Swift 5.7+)配置好语言版本和平台支持,而Swift Package Manager默认可能采用更低的兼容模式,导致正则字面量特性未被启用,从而出现'/' is not a prefix unary operator的报错。
内容的提问来源于stack exchange,提问作者AthanasiusOfAlex
相关产品推荐
相关产品推荐

