length 属性没有, subString 方法体验很差,整了半天没弄明白 s.substringWithRange 里的变量是什么,怎么也初始化不出来。
搜了下 so ,长度方法一个版本改了三次
let str = "Hello" let count = str.length // returns 5 (Int)
extension String { var length: Int { return countElements(self) } // Swift 1.1 } extension String { var length: Int { return count(self) } // Swift 1.2 } extension String { var length: Int { return characters.count } // Swift 2.0 }
这让人怎么好好用 swift 呢
1
Totato5749 2016-08-04 11:16:52 +08:00
会不会变成讨论编程语言优劣的帖?
|
2
loveuqian 2016-08-04 11:17:45 +08:00
public var length: Int {
return self.characters.count } |
3
PopeyeLau 2016-08-04 11:59:18 +08:00
`let result = String(str.characters.reverse())`
|
4
broccoli 2016-08-04 12:01:53 +08:00 2
String("abcdefg".characters.reverse())
|
5
mofet 2016-08-04 13:08:23 +08:00
Swift 略麻烦, Range 和 NSRange 不是一回事, String.Index 和 Int 也不能转换。不熟悉的话 as NSString 来处理。
|
8
PrideChung 2016-08-04 17:04:24 +08:00
Swift 里我最讨厌的 API 就是字符串处理,相当违反直觉
|
9
dorentus 2016-08-04 20:50:40 +08:00 via iPhone
|
10
free9fw 2016-08-04 20:54:49 +08:00
swift 字符串说实话,比 OC 好用太多了,特别是在加密算法方面
|
11
zhangyi2099 2016-08-04 21:28:20 +08:00 via iPhone
swift 是门 pop 的语言
|
12
EchoWhale 2016-08-04 21:31:37 +08:00 via Android
leetcode 上的字符串题目, swift 做不来
|
13
tuimaochang 2016-08-04 22:12:23 +08:00
《 swift 从精通到入门》
|
14
dtfm 2016-08-04 23:41:09 +08:00 via Android
每当这个时候,我就想起了 python 的切片大法
|
15
PrideChung 2016-08-05 00:34:25 +08:00
@dorentus 要处理可变长字符不需要把 API 设计得这么难用,参考 Ruby
|
16
onevcat 2016-08-05 06:57:54 +08:00 via iPhone 1
@PrideChung 如果告诉你 Ruby 的字符串处理也是各种错误呢… Swift 应该是现在为数不多的在字符串上没有太大问题的语言了,当然前提是要真的搞明白各种 code point 到底意味着什么…
最简单还是考察下变音符的处理, Swift 的 characters view 幕后帮你处理了很多你永远不会想做事情。 |