Size: a a a

2018 May 10

Oℕ

Oleg ℕizhnik in Rust Beginners
Ахо-корасик  -это поиск строк внутри текста
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
И технически это будет то же самое префиксное дерево, только не сжатое
источник
2018 May 12

ЕИ

Евгений Иванов in Rust Beginners
Зочем?
источник

RB

Rustem B. in Rust Beginners
Чтобы ты спросил!
источник

ЕИ

Евгений Иванов in Rust Beginners
Уф.
источник

A

Anton 📦 ᯌ in Rust Beginners
на англ
источник

A

Anton 📦 ᯌ in Rust Beginners
@kezvision спасибо
источник

м

мухожук in Rust Beginners
@utf16le незачто
источник

A

Anton 📦 ᯌ in Rust Beginners
источник
2018 May 15

A

Anton 📦 ᯌ in Rust Beginners
@kezvision я научился это делать!
источник

м

мухожук in Rust Beginners
@utf16le незачто
источник
2018 May 16

A

Artem in Rust Beginners
Всем привет, время глупых вопросов (1 день учу раст). Я совсем не понимаю как работает borrow checker (или что за это ответственно?)

Конкретно, вот этот кот работает:


fn router() -> Router {
   let mut router = Router::new();

   router
       .get("/", get_form, "index")
       .post("/gcd", post_form, "calculate");

   router
}


А вот этот нет

fn router() -> Router {
   *Router::new()
       .get("/", get_form, "index")
       .post("/gcd", post_form, "calculate")
}

Пишет  “cannot move out of borrowed content”.  Что-то подсказывает, что это возможно как-то связано с временными переменными. Может, они не доживают или что. 🙁

Короче, вопрос в том почему это происходит.
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Artem
Всем привет, время глупых вопросов (1 день учу раст). Я совсем не понимаю как работает borrow checker (или что за это ответственно?)

Конкретно, вот этот кот работает:


fn router() -> Router {
   let mut router = Router::new();

   router
       .get("/", get_form, "index")
       .post("/gcd", post_form, "calculate");

   router
}


А вот этот нет

fn router() -> Router {
   *Router::new()
       .get("/", get_form, "index")
       .post("/gcd", post_form, "calculate")
}

Пишет  “cannot move out of borrowed content”.  Что-то подсказывает, что это возможно как-то связано с временными переменными. Может, они не доживают или что. 🙁

Короче, вопрос в том почему это происходит.
А есть АПИ, что возвращает get, post?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Можт он ссылку возвращает?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
ну судя по звёздочке так и есть
источник

A

Artem in Rust Beginners
Да, конечно, это iron-router и оно возвращает ссылку 🙂
https://github.com/iron/router/blob/master/src/router.rs#L96-L103
источник

A

Artem in Rust Beginners
Я как-то не так дереф делаю?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Artem
Да, конечно, это iron-router и оно возвращает ссылку 🙂
https://github.com/iron/router/blob/master/src/router.rs#L96-L103
Ок, ну тогда получается что во втором случае ты создаёшь очень краткоживущую переменную типа Router, она существует только на время выполнения выражения.
get и post возвращают мутабельную ссылку на неё, поэтому их результат нельзя разыменовать и использовать как результат функции именно потому, что они не возвращают тебе исходный Router во владение
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
А в первом ты явно объявил переменную, которая целиком и полностью владеет твоим Router, позаимствовал, чтобы добавить путей, а затем вернул полноправного владельца как результат
источник

A

Artem in Rust Beginners
Ок, становится яснее. Как более идиоматично написать подобный код? Вводить локальную переменную, потом использовать её как return value?
источник