Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 检查字符串是空的还是空的_Rust - Fatal编程技术网

Rust 检查字符串是空的还是空的

Rust 检查字符串是空的还是空的,rust,Rust,对于a)&str b)字符串,检查字符串是否为空的正确方法是什么?我以前是通过“aaa.len()==0来做这件事的,但我的直觉告诉我还有另一种方法吗?可以在文档中找到: impl Collection for String fn len(&self) -> uint fn is_empty(&self) -> bool &str和String都有一个名为为空的方法: 文件 文件 这就是它们的使用方式: assert_eq!("".is_empt

对于a)&str b)字符串,检查字符串是否为空的正确方法是什么?我以前是通过
“aaa.len()==0
来做这件事的,但我的直觉告诉我还有另一种方法吗?

可以在文档中找到:

impl Collection for String
    fn len(&self) -> uint
    fn is_empty(&self) -> bool

&str
String
都有一个名为
为空的方法:

  • 文件
  • 文件
这就是它们的使用方式:

assert_eq!("".is_empty(), true); // a)
assert_eq!(String::new().is_empty(), true); // b)

其他人回答说,
Collection.is_empty
可用于知道字符串是否为空,但假设“is blank”的意思是“仅由空格组成”,则您需要,这对于空字符串和仅由具有
White_Space
unicode属性集的字符组成的字符串都适用

只有字符串切片实现
切片
,因此如果从
字符串开始,则必须使用


tl;dr:
s.is_whitespace()
如果
s:&str
s.as_slice().is_whitespace()
如果
s:String
空字符串或只有空格的字符串可以通过以下方式进行检查:

s.trim().is_empty()

其中
trim()
返回一个从字符串()的开头和结尾删除空白字符的片段。

@AlexanderSupertramp还有什么?还有什么呢?@AlexanderSupertramp哦,我误读了你,抱歉。由于长度不能为负,因此它返回一个无符号int@AlexanderSupertramp:在语言中,单位是写的
()
,而不是字面上的
unit
@FrancisGagné,单位是写为单位的,单位的值是()。to_字符串()版本是一个不必要的字符串分配。@pyrho我认为其目的是表明
&str
String
都有
is\u empty()
方法。我猜是这样的,我只是指出这是一个不好的做法(:FYI,
)。to\u String()
不会导致分配(至少在当前情况下)。它转换成一个
RawVec::具有_容量(0)
,根据Rust源代码,它不会分配。它似乎是一个不稳定的外部板条箱,是否有其他解决方法?我原以为这不会很好执行,但后来我查看了源代码。回答不错!