作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想分配字符串的第一个字符。当然有一个高级功能,但对我来说(我来自 C++),当简单地使用 [index] 时,它更容易阅读。所以我定义了一个String类型的扩展:
extension String {
subscript (i: Int) -> Character {
return self[advance(self.startIndex, i)]
}
subscript (i: Int) -> String {
return String(self[i] as Character)
}
...
这适用于以下情况:
if (s[0] == "u")
但是当像这样分配这个值时
var c = s[0]
我得到一个错误,编译器不能用 int 类型下标字符串。但是区别在哪里呢?
最佳答案
我认为编译器无法推断出 subscript
的返回类型,因为这两个 subscript
具有相同的输入签名。
因此您必须指定要使用的下标
。像这样,
var c:Character = s[0]
或
var c:String = s[0]
关于string - SWIFT:字符串中的下标 int(Cnndition 有效,赋值无效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401779/
我想分配字符串的第一个字符。当然有一个高级功能,但对我来说(我来自 C++),当简单地使用 [index] 时,它更容易阅读。所以我定义了一个String类型的扩展: extension String
我是一名优秀的程序员,十分优秀!