当前位置: 首页 > 知识库问答 >
问题:

如何创建字符串的静态数组?

穆彬郁
2023-03-14

注意此问题包含在Rust 1.0之前的语法。代码无效,但概念仍然相关。

如何在Rust中创建字符串的全局静态数组

对于整数,这将编译:

static ONE:u8 = 1;
static TWO:u8 = 2;
static ONETWO:[&'static u8, ..2] = [&ONE, &TWO];

但我无法获得类似的字符串编译:

static STRHELLO:&'static str = "Hello";
static STRWORLD:&'static str = "World";
static ARR:[&'static str, ..2] = [STRHELLO,STRWORLD]; // Error: Cannot refer to the interior of another static

共有3个答案

孙斌
2023-03-14

如今,另一种方法是:

const A: &'static str = "Apples";
const B: &'static str = "Oranges";
const AB: [&'static str; 2] = [A, B]; // or ["Apples", "Oranges"]
钱跃
2023-03-14

Rust中有两个相关的概念和关键词:const和static:

https://doc.rust-lang.org/reference/items/constant-items.html

对于大多数用例,包括这个用例,const更合适,因为不允许变异,编译器可能会内联const项。

const STRHELLO:&'static str = "Hello";
const STRWORLD:&'static str = "World";
const ARR:[&'static str, ..2] = [STRHELLO,STRWORLD];

注意,有一些过时的文档没有提到较新的const,包括Rust by Example。

钱德海
2023-03-14

这是Rust 1.0及其后续版本的稳定替代品:

const BROWSERS: &'static [&'static str] = &["firefox", "chrome"];
 类似资料:
  • 问题内容: 我需要创建一个将给定映射到的数组的静态对象。 换句话说,我想定义如下内容: 有没有简单的方法可以在Java中做到这一点? 而且,如果可能的话,我想同时为和值使用常量。 编辑: 为了澄清我的意思是值的常量,并给出我认为是正确的代码,这是我在解决方案中的第一个选项: 请注意,这些名称不是我实际使用的名称。这只是一个人为的例子。 问题答案: 你 并不 需要单独的声明和初始化。如果您知道怎么做

  • 问题内容: 我将SET1声明为静态String [],我想将SET2声明为SET1 +其他一些参数。是否可以声明SET2与SET1静态相似(即私有静态String []),但使用上面的定义,如果不这样做的话? 问题答案: 查看Commons Util ArrayUtils.add:

  • 问题内容: 是否有任何使用Spring或java替换模板字符串以及值的API。 例如: 其中参数(,)中的形式。 问题答案: 我最喜欢的模板引擎是Apache Velocity 也可以与Spring很好地集成,此处有介绍性文章

  • 问题内容: 我如何提取字符串[]或arraylist中的所有元素,并以适当的格式(所有空格之间使用单个空格)组合所有单词并存储在数组中。 输出:Java很酷。 问题答案: 使用。 或使用Apache Commons Lang 。 或使用Java8的。

  • 问题内容: 我想创建一个包含唯一字符串的数组。我怎样才能做到这一点? 问题答案: 如果要收集唯一元素,则为Set数据类型。Go没有集合数据类型,但是您可以使用来充当集合。 对于“好的”集合,请使用具有值类型(带有值)的映射并利用零值。对于内存占用最小的集合,请使用具有值类型的映射,因为类型的值不占用内存;并使用逗号分隔的习惯用法来判断值是否在集合/映射中。 这是set的“不错”版本的样子。代替切片

  • 问题内容: 我正在尝试将String传递给我的。如何通过针对读者的“测试” 而不是来自读者的输入? 问题答案: 您可以如下修改代码