定义下标脚本之后,可以使用“[]”来存取数据类型的值。
示例1改进:
通过类扩展,也可以直接给String类添加索引功能,代码如下:
51
示例1:实现一个我们自定的字符串类,可以方便的通过索引获取某一个字符值,或某一部分字符串。同时也可以通过索引,给某一部分赋值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
class
SubString
{
var
str:
String
=
""
init
(str:
)
{
self
.str = str;
}
/**下标脚本:获取/设置部分字符串**/
subscript(start:
Int
,length:
) ->
String
{
get
{
return
(str
as
NSString
).substringWithRange(
NSRange
(location: start,length: length))
}
set
{
let
tmp = str
str =
""
s =
""
e =
""
for
(idx,item)
in
tmp.characters.
enumerate
() {
if
(idx < start)
{
s +=
"\(item)"
} else if
(idx >= start + length)
{
e +=
"\(item)"
}
}
str = s + newValue + e
@H_331_301@}
}
/**下标脚本:获取/设置字符**/
@H_404_313@subscript(index:
String
{
{
return
(str[str.startIndex.advancedBy(index)])
}
{
tmp = str
""
() {
idx == index {
str +=
"\(newValue)"
}
else
{
"\(item)"
}
}
}
}
}
str =
SubString
(str:
"hangge.com"
)
(str[7])
@H_68_403@
//获取字符:c
str[7,3] =
"COM"
//设置部分字符串
str[0] =
"H"
//设置部分字符
(str[0,10])
//Hangge.COM
|
extension
String
String
{
(
self
{
tmp =
self
""
""
() {
(idx < start)
{
"\(item)"
} else
{
"\(item)"
}
}
= s + newValue + e
}
}
String
{
[
.startIndex.advancedBy(index)])
{
self
""
() {
idx == index {
@H_404_313@+=
"\(newValue)"
"\(item)"
}
}
}
}
"hangge.com"
(str[7])
"COM"
"H"
示例2:使用一维数组结合下标方法一定程度上模拟实现了二维数组
猜你在找的Swift相关文章 |