Avatar ·

¿Qué significa el operador r#""# en Rust y cómo usar literales de cadena crudos?

¡Hola! Empecé a estudiar Rust recientemente y me encontré con una construcción confusa en código ajeno. Allí había algo como: ```rust let pattern = r#"^\\d+\\.\\d+\\.\\d+\\.\\d+$"#; let json = r#"{"name": "John", "age": 30}"#; ``` Veo que antes de la cadena hay una letra `r`, y luego los símbolos `#"` y `"#`. ¿Qué significa todo esto? Sé que en Rust los literales de cadena se indican con comillas dobles `"..."`, y el símbolo `\\` se usa para escapar. Pero aquí hay algo de magia con `#`. Me confunde especialmente que dentro de esta cadena hay comillas dobles normales. En una cadena normal tendría que escribir `\\"` para escapar, pero aquí las comillas están tal cual. Y además esos signos de numeral `#` en los bordes, ¿para qué sirven? ¿Se puede prescindir de ellos? Intenté escribir simplemente `r"..."`, pero el compilador se queja si dentro de la cadena hay comillas. En cambio, con `r#"..."#` funciona. ¿Por qué es así? ¿Y qué pasa si necesito usar `"#` directamente dentro de la cadena? Por ejemplo, si escribo código que genera JSON o re...