Trường hợp thứ hai là đơn giản vì array2
là một UnicodeScalarView
và không phải là một mảng:
let array2 = "bar".unicodeScalars
let str2 = String(array2)
print(str2) // bar
Nếu bạn có một mảng (hoặc bất kỳ chuỗi) của vô hướng Unicode sau đó bạn có thể bắt đầu bằng một chuỗi trống và thêm các phần tử vào chế độ xem unicodeScalars
:
let array = [UnicodeScalar("f")!, UnicodeScalar("o")!, UnicodeScalar("o")!]
// Or: let array: [UnicodeScalar] = ["f", "o", "o"]
var str1 = ""
str1.unicodeScalars.append(contentsOf: array)
print(str1) // foo
Tất nhiên bạn có thể định nghĩa một phần mở rộng tùy chỉnh cho mục đích đó:
extension String {
init<S: Sequence>(unicodeScalars ucs: S)
where S.Iterator.Element == UnicodeScalar
{
var s = ""
s.unicodeScalars.append(contentsOf: ucs)
self = s
}
}
let str1 = String(unicodeScalars: array)
Nguồn
2017-07-25 05:14:37
https://stackoverflow.com/a/34294660/2303865 –