Preguntas etiquetadas con rust

100
¿Cómo iterar sobre un rango con un paso personalizado?

¿Cómo puedo iterar sobre un rango en Rust con un paso que no sea 1? Vengo de una experiencia en C ++, así que me gustaría hacer algo como for(auto i = 0; i <= n; i+=2) { //... } En Rust necesito usar la rangefunción, y no parece que haya un tercer argumento disponible para tener un paso...

100
Devolución de llamada idiomática en Rust

En C / C ++ normalmente haría devoluciones de llamada con un puntero de función simple, tal vez pasando un void* userdataparámetro también. Algo como esto: typedef void (*Callback)(); class Processor { public: void setCallback(Callback c) { mCallback = c; } void processEvents() { for...

96
¿Es posible hacer que un tipo sea solo movible y no copiable?

Nota del editor : esta pregunta se hizo antes de Rust 1.0 y algunas de las afirmaciones en la pregunta no son necesariamente ciertas en Rust 1.0. Algunas respuestas se han actualizado para abordar ambas versiones. Tengo esta estructura struct Triplet { one: i32, two: i32, three: i32, } Si...

95
¿Qué tiene Rust en lugar de un recolector de basura?

Entiendo que Rust no tiene un recolector de basura y me pregunto cómo se libera la memoria cuando un enlace sale de su alcance. Entonces, en este ejemplo, entiendo que Rust recupera la memoria asignada a 'a' cuando sale del alcance. { let a = 4 } El problema que tengo con esto es, en primer...

94
¿Cómo puedo crear varios binarios con Cargo?

Me gustaría hacer un proyecto con a daemony a client, conectando a través de un socket unix. A clienty a daemonrequieren dos binarios, entonces, ¿cómo puedo saber si hay Cargoque construir dos objetivos a partir de dos fuentes diferentes? Para agregar un poco de fantasía, me gustaría tener un...

92
¿Cómo uso una macro en archivos de módulo?

Tengo dos módulos en archivos separados dentro de la misma caja, donde la caja se ha macro_ruleshabilitado. Quiero usar las macros definidas en un módulo en otro módulo. // macros.rs #[macro_export] // or not? is ineffectual for this, afaik macro_rules! my_macro(...) // something.rs use...

91
¿Qué es un "puntero gordo" en Rust?

Ya he leído el término "puntero gordo" en varios contextos, pero no estoy seguro de qué significa exactamente y cuándo se usa en Rust. El puntero parece ser dos veces más grande que un puntero normal, pero no entiendo por qué. También parece tener algo que ver con los objetos de rasgo....

89
¿Cuáles son los tipos de Rust indicados con un solo apóstrofe?

Encontré varios tipos en Rust denotados con un solo apóstrofe: 'static 'r 'a ¿Cuál es el significado de ese apóstrofe? ¿Quizás es un modificador de referencias ( &)? ¿Tipificación genérica específica para referencias? No tengo idea de dónde se esconde la documentación para esto....

87
¿Cómo creo un literal HashMap?

¿Cómo puedo crear un literal HashMap en Rust? En Python puedo hacerlo así: hashmap = { 'element0': { 'name': 'My New Element', 'childs': { 'child0': { 'name': 'Child For Element 0', 'childs': { ... } } } }, ... } Y en Go así: type Node struct { name string childs...

85
¿Cuándo se debe usar en línea en Rust?

Rust tiene un atributo "en línea" que se puede usar en uno de esos tres sabores: #[inline] #[inline(always)] #[inline(never)] ¿Cuándo deben usarse? En la referencia de Rust, vemos una sección de atributos en línea que dice El compilador integra automáticamente funciones basadas en...

85
Conversión de Option <String> a Option <& str>

Muy a menudo he obtenido un valor Option<String>de un cálculo, y me gustaría usar este valor o un valor codificado por defecto. Esto sería trivial con un número entero: let opt: Option<i32> = Some(3); let value = opt.unwrap_or(0); // 0 being the default Pero con ay Stringa...