Swift:生成(Swift)字符数组 [英] Swift: generate an array of (Swift) characters

查看:178
本文介绍了Swift:生成(Swift)字符数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一个简单的问题-希望我正在尝试生成一个简单的字符数组,类似于以下内容:

Simple question - hopefully, I am trying to generate a simple array of characters, something in the vein of:

// trying to do something like this (pseudo code):
let letters:[Character] = map(0..<26) { i in 'a' + i }

并且尝试了以下操作均无济于事

and have tried the following to no avail

let a = Character("a")
let z = Character("z")
let r:Range<Character> = a..<z
let letters:[Character] = map(a..<z) { i in i }

我意识到Swift使用Unicode,做这样的事情的正确方法是什么?

I realize that Swift uses Unicode, what is the correct way to do something like this?

(注意,这不是关于与旧版Obj-C char互操作的问题,严格来说是在Swift中进行测试等).

(Note, this is not a question about interop with legacy Obj-C char, strictly in Swift for testing etc).

推荐答案

在Swift中获取初始字符代码(即c/Obj-C中的'a')有点麻烦,但是您可以这样做:

It's a little cumbersome to get the initial character code (i.e. 'a' in c / Obj-C) in Swift, but you can do it like this:

let aScalars = "a".unicodeScalars
let aCode = aScalars[aScalars.startIndex].value

let letters: [Character] = (0..<26).map {
    i in Character(UnicodeScalar(aCode + i))
}

这篇关于Swift:生成(Swift)字符数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆