Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
4b0f29a4
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4b0f29a4
编写于
3月 14, 2013
作者:
E
Erick Tryzelaar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core: add char_at_reverse
上级
fe74a1c9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
1 deletion
+34
-1
src/libcore/str.rs
src/libcore/str.rs
+34
-1
未找到文件。
src/libcore/str.rs
浏览文件 @
4b0f29a4
...
...
@@ -1769,7 +1769,7 @@ impl Equiv<~str> for &'self str {
return
CharRange
{
ch
:
val
as
char
,
next
:
i
};
}
/// Pluck
a character out
of a string
/// Pluck
s the `n`th character from the beginning
of a string
pub
pure
fn
char_at
(
s
:
&
str
,
i
:
uint
)
->
char
{
return
char_range_at
(
s
,
i
)
.ch
;
}
...
...
@@ -1799,6 +1799,11 @@ pub struct CharRange {
return
CharRange
{
ch
:
ch
,
next
:
prev
};
}
/// Plucks the `n`th character from the end of a string
pub
pure
fn
char_at_reverse
(
s
:
&
str
,
i
:
uint
)
->
char
{
char_range_at_reverse
(
s
,
i
)
.ch
}
/**
* Loop through a substring, char by char
*
...
...
@@ -2274,6 +2279,7 @@ pub trait StrSlice {
pure
fn
to_owned
(
&
self
)
->
~
str
;
pure
fn
to_managed
(
&
self
)
->
@
str
;
pure
fn
char_at
(
&
self
,
i
:
uint
)
->
char
;
pure
fn
char_at_reverse
(
&
self
,
i
:
uint
)
->
char
;
fn
to_bytes
(
&
self
)
->
~
[
u8
];
}
...
...
@@ -2419,6 +2425,11 @@ impl StrSlice for &'self str {
#[inline]
pure
fn
char_at
(
&
self
,
i
:
uint
)
->
char
{
char_at
(
*
self
,
i
)
}
#[inline]
pure
fn
char_at_reverse
(
&
self
,
i
:
uint
)
->
char
{
char_at_reverse
(
*
self
,
i
)
}
fn
to_bytes
(
&
self
)
->
~
[
u8
]
{
to_bytes
(
*
self
)
}
}
...
...
@@ -3426,6 +3437,28 @@ fn test_utf16() {
}
}
#[test]
fn
test_char_at
()
{
let
s
=
~
"ศไทย中华Việt Nam"
;
let
v
=
~
[
'ศ'
,
'ไ'
,
'ท'
,
'ย'
,
'中'
,
'华'
,
'V'
,
'i'
,
'ệ'
,
't'
,
' '
,
'N'
,
'a'
,
'm'
];
let
mut
pos
=
0
;
for
v
.each
|
ch
|
{
fail_unless!
(
s
.char_at
(
pos
)
==
*
ch
);
pos
+=
from_char
(
*
ch
)
.len
();
}
}
#[test]
fn
test_char_at_reverse
()
{
let
s
=
~
"ศไทย中华Việt Nam"
;
let
v
=
~
[
'ศ'
,
'ไ'
,
'ท'
,
'ย'
,
'中'
,
'华'
,
'V'
,
'i'
,
'ệ'
,
't'
,
' '
,
'N'
,
'a'
,
'm'
];
let
mut
pos
=
s
.len
();
for
v
.each_reverse
|
ch
|
{
fail_unless!
(
s
.char_at_reverse
(
pos
)
==
*
ch
);
pos
-=
from_char
(
*
ch
)
.len
();
}
}
#[test]
fn
test_each_char
()
{
let
s
=
~
"abc"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录