这应该是足够简单...为什么使用重音符分割字符串会崩溃?
import Foundation
let str:String = "Beyonce\u{301} and Tay"
print(str)
print(str.components(separatedBy: CharacterSet(charactersIn: "e")))
哪个编译罚款,直到我运行可执行文件:
// Beyoncé and Tay
// Illegal instruction (core dumped)
我怀疑斯威夫特也很难对付结合'\u{65}'
重音符号,但考虑如何多语言强调了基于石墨烯字符串的模式,我认为这将是很清楚,在'e'
分裂"Beyonce\u{301} and Tay"
应该放弃["B", "yonce\u{301} and Tay"]
因为'e\u{301}'
应该被解释为一个单一的字形,而不是一个'e'
加上急性结合。在单字符
拆分不会崩溃:
print(str.components(separatedBy: "e"))
// ["B", "yoncé and Tay"]
我迅速的版本是
swiftc -version
Swift version 3.0-dev (LLVM 3e3d712024, Clang 09ad59b006, Swift fdf6ee20e4)
Target: x86_64-unknown-linux-gnu
我得到的输出'[” B“,”yonc“,”和Tay“]在Xcode命令行应用程序中运行。 –
@MartinR我在Linux上运行swift版本3.0-dev –
@MartinR,但无论如何,这不是正确的输出吗? 'é'应该被解释为一个单独的原子,''é'!='e'' –