arrays - resueltos - vectores y matrices en programacion
¿Cómo crear una matriz estática de cadenas? (3)
Nota Esta pregunta contiene una sintaxis anterior a Rust 1.0. El código no es válido, pero los conceptos siguen siendo relevantes.
¿Cómo se crea una matriz estática global de cadenas en Rust?
Para enteros, esto compila:
static ONE:u8 = 1;
static TWO:u8 = 2;
static ONETWO:[&''static u8, ..2] = [&ONE, &TWO];
Pero no puedo conseguir algo similar para compilar cadenas:
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
Esta es una alternativa estable para Rust 1.0 y todas las versiones posteriores:
const BROWSERS: &''static [&''static str] = &["firefox", "chrome"];
Hay dos conceptos y palabras clave relacionados en Rust: const y static:
http://doc.rust-lang.org/reference.html#constant-items
Para la mayoría de los casos de uso, incluido este, const es más apropiado, ya que no se permite la mutación, y el compilador puede incluir elementos const en línea.
const STRHELLO:&''static str = "Hello";
const STRWORLD:&''static str = "World";
const ARR:[&''static str, ..2] = [STRHELLO,STRWORLD];
Tenga en cuenta que hay documentación obsoleta que no menciona la nueva versión, incluido Rust by Example.
Otra forma de hacerlo hoy en día es:
const A: &''static str = "Apples";
const B: &''static str = "Oranges";
const AB: [&''static str; 2] = [A, B]; // or ["Apples", "Oranges"]