You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建Rust字符串字面量?不同创建方式有何差异?

Rust中几种字符串创建方式的区别

下面逐一说明四种写法的核心区别:

  • let str = "Hello, world!";

    • 类型为&'static str(静态字符串切片),存储在程序的只读数据段,无需堆内存分配。
    • 拥有'static生命周期,在程序运行全程有效。
    • 不可变,无法修改内部字符内容。
  • let str = String::from("Hello, world!");

    • 创建的是String类型——堆分配的可变字符串。
    • 直接通过String的关联函数完成转换,内部会将字面量内容复制到新分配的堆内存中。
  • let str = "Hello, world!".to_owned();

    • 同样生成String类型,基于ToOwned trait实现。
    • ToOwned是通用 trait,除了&str,切片&[T]也能通过它生成Vec<T>,通用性更强。对&str而言,其效果和String::from几乎无差异。
  • let str = "Hello, world!".to_string();

    • 生成String类型,基于ToString trait实现。
    • 内部本质调用的是String::from,最终效果和String::from完全一致,只是写法更适配通用场景——任何实现Display trait的类型都能调用to_string()转换为字符串。

内容的提问来源于stack exchange,提问作者Heineken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 23:17:04