pub struct OsStr { /* private fields */ }
Expand description
借用引用到 OS 字符串 (请参见 OsString
)。
此类型表示操作系统首选表示形式中字符串的借用引用。
&OsStr
对 OsString
如同 &str
对 String
: 每对中的前一个都是借用的引用; 后者是拥有的字符串。
请参见模块中关于 转换 的顶级文档,以讨论为 OsStr
from/to 原生表示形式的 转换 而实现的特征。。
强制转换为 OsStr
切片。
use std::ffi::OsStr;
let os_str = OsStr::new("foo");
Run
如果 OsStr
是有效的 Unicode,则产生 &str
。
此转换可能需要检查 UTF-8 有效性。
use std::ffi::OsStr;
let os_str = OsStr::new("foo");
assert_eq!(os_str.to_str(), Some("foo"));
Run
将 OsStr
转换为 Cow<str>
。
任何非 Unicode 序列都将替换为 U+FFFD REPLACEMENT CHARACTER
。
使用无效的 Unicode 在 OsStr
上调用 to_string_lossy
:
#[cfg(unix)] {
use std::ffi::OsStr;
use std::os::unix::ffi::OsStrExt;
let source = [0x66, 0x6f, 0x80, 0x6f];
let os_str = OsStr::from_bytes(&source[..]);
assert_eq!(os_str.to_string_lossy(), "fo�o");
}
#[cfg(windows)] {
use std::ffi::OsString;
use std::os::windows::prelude::*;
let source = [0x0066, 0x006f, 0xD800, 0x006f];
let os_string = OsString::from_wide(&source[..]);
let os_str = os_string.as_os_str();
assert_eq!(os_str.to_string_lossy(), "fo�o");
}
Run
将切片复制到拥有的 OsString
中。
use std::ffi::{OsStr, OsString};
let os_str = OsStr::new("foo");
let os_string = os_str.to_os_string();
assert_eq!(os_string, OsString::from("foo"));
Run
检查 OsStr
是否为空。
use std::ffi::OsStr;
let os_str = OsStr::new("");
assert!(os_str.is_empty());
let os_str = OsStr::new("foo");
assert!(!os_str.is_empty());
Run
返回此 OsStr
的长度。
请注意,这不会以 OS 字符串形式返回字符串中的字节数。
返回的长度是 OsStr
使用的底层存储的长度。
如 OsString
简介中所讨论的,OsString
和 OsStr
以最适合于原生平台和 Rust 字符串形式之间的廉价相互转换的形式存储字符串,这两种形式在存储大小和编码方面可能都大不相同。
此数字对于传递给其他方法 (例如 OsString::with_capacity
) 以避免重新分配非常有用。
请参见有关编码和容量单位的主要 OsString
文档信息。
use std::ffi::OsStr;
let os_str = OsStr::new("");
assert_eq!(os_str.len(), 0);
let os_str = OsStr::new("foo");
assert_eq!(os_str.len(), 3);
Run
将此字符串就地转换为其 ASCII 小写等效项。
ASCII 字母 ‘A’ 到 ‘Z’ 映射到 ‘a’ 到 ‘z’,但是非 ASCII 字母不变。
要返回新的小写值而不修改现有值,请使用 OsStr::to_ascii_lowercase
。
use std::ffi::OsString;
let mut s = OsString::from("GRÜßE, JÜRGEN ❤");
s.make_ascii_lowercase();
assert_eq!("grÜße, jÜrgen ❤", s);
Run
将此字符串就地转换为其 ASCII 大写等效项。
ASCII 字母 ‘a’ 到 ‘z’ 映射到 ‘A’ 到 ‘Z’,但是非 ASCII 字母不变。
要返回新的大写值而不修改现有值,请使用 OsStr::to_ascii_uppercase
。
use std::ffi::OsString;
let mut s = OsString::from("Grüße, Jürgen ❤");
s.make_ascii_uppercase();
assert_eq!("GRüßE, JüRGEN ❤", s);
Run
返回此字符串的副本,其中每个字符都映射为其等效的 ASCII 小写字母。
ASCII 字母 ‘A’ 到 ‘Z’ 映射到 ‘a’ 到 ‘z’,但是非 ASCII 字母不变。
要就地小写该值,请使用 OsStr::make_ascii_lowercase
。
use std::ffi::OsString;
let s = OsString::from("Grüße, Jürgen ❤");
assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
Run
返回此字符串的副本,其中每个字符都映射为其等效的 ASCII 大写字母。
ASCII 字母 ‘a’ 到 ‘z’ 映射到 ‘A’ 到 ‘Z’,但是非 ASCII 字母不变。
要就地将值大写,请使用 OsStr::make_ascii_uppercase
。
use std::ffi::OsString;
let s = OsString::from("Grüße, Jürgen ❤");
assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
Run
检查此字符串中的所有字符是否都在 ASCII 范围内。
use std::ffi::OsString;
let ascii = OsString::from("hello!\n");
let non_ascii = OsString::from("Grüße, Jürgen ❤");
assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
Run
检查两个字符串是否为 ASCII 不区分大小写的匹配项。
与 to_ascii_lowercase(a) == to_ascii_lowercase(b)
相同,但不分配和复制临时文件。
use std::ffi::OsString;
assert!(OsString::from("Ferris").eq_ignore_ascii_case("FERRIS"));
assert!(OsString::from("Ferrös").eq_ignore_ascii_case("FERRöS"));
assert!(!OsString::from("Ferrös").eq_ignore_ascii_case("FERRÖS"));
Run
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
将此类型转换为 (通常是推断的) 输入类型的共享引用。
🔬This is a nightly-only experimental API. (extend_one
#72631) 用一个元素扩展一个集合。
🔬This is a nightly-only experimental API. (extend_one
#72631)
通过复制借用的内容将 Cow<'a, OsStr>
转换为 Box<OsStr>
。
🔬This is a nightly-only experimental API. (slice_concat_trait
#27747) 串联后的结果类型
🔬This is a nightly-only experimental API. (slice_concat_trait
#27747)
将
OsStr
重新编码为宽字符序列,即可能格式不正确的 UTF-16。
Read more
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试 self
和 other
值是否相等,并由 ==
使用。
此方法测试 !=
。
默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more
此方法测试的内容少于 (对于
self
和
other
),并且由
<
操作员使用。
Read more
此方法测试小于或等于 (对于
self
和
other
),并且由
<=
运算符使用。
Read more
此方法测试大于 (对于
self
和
other
),并且由
>
操作员使用。
Read more
此方法测试是否大于或等于 (对于
self
和
other
),并且由
>=
运算符使用。
Read more