Telegram Group & Telegram Channel
Forwarded from Pragmatic Programmer (Nikita Bishōnen)
Немного размышлений на тему Rust и его развития без стагнации.

Для поддержания этого "девиза" в Rust появились "издания", сейчас на носу издание 2024.
Вот среднего размера изменение, которое это издание привнесёт.
С ним, код работающий в издании 2021:


fn indices<'s, T>(
slice: &'s [T],
) -> impl Iterator<Item = usize> {
0 .. slice.len()
}
...
fn main() {
let mut data = vec![1, 2, 3];
let i = indices(&data);
data.push(4); // <-- Error!
i.next(); // <-- assumed to access `&data`
}


перестаёт работать и выдаёт ошибку, потому-что новое издание задействует lifetime в возвращаемом impl Trait.

Для исправления предлагается ввести некий use:


) -> impl Iterator<Item = usize> + use<> {
// -----
// Return type does not use `'s` or `T`


и на мой взгляд, это конечно выглядит как костыль. Думаю сейчас я понимаю тех, кто в мою молодость программиста сидел и говорил что Java 8 это всё сахар и не нужно программистам. Думаю что дальше тянуть обратную совместимость у Rust будет получаться всё сложнее и сложнее, пора работать над Rust 2.0.



group-telegram.com/type_driven_thoughts/201
Create:
Last Update:

Немного размышлений на тему Rust и его развития без стагнации.

Для поддержания этого "девиза" в Rust появились "издания", сейчас на носу издание 2024.
Вот среднего размера изменение, которое это издание привнесёт.
С ним, код работающий в издании 2021:


fn indices<'s, T>(
slice: &'s [T],
) -> impl Iterator<Item = usize> {
0 .. slice.len()
}
...
fn main() {
let mut data = vec![1, 2, 3];
let i = indices(&data);
data.push(4); // <-- Error!
i.next(); // <-- assumed to access `&data`
}


перестаёт работать и выдаёт ошибку, потому-что новое издание задействует lifetime в возвращаемом impl Trait.

Для исправления предлагается ввести некий use:


) -> impl Iterator<Item = usize> + use<> {
// -----
// Return type does not use `'s` or `T`


и на мой взгляд, это конечно выглядит как костыль. Думаю сейчас я понимаю тех, кто в мою молодость программиста сидел и говорил что Java 8 это всё сахар и не нужно программистам. Думаю что дальше тянуть обратную совместимость у Rust будет получаться всё сложнее и сложнее, пора работать над Rust 2.0.

BY Type Driven Thoughts 🦀


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/type_driven_thoughts/201

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Multiple pro-Kremlin media figures circulated the post's false claims, including prominent Russian journalist Vladimir Soloviev and the state-controlled Russian outlet RT, according to the DFR Lab's report. But because group chats and the channel features are not end-to-end encrypted, Galperin said user privacy is potentially under threat. Two days after Russia invaded Ukraine, an account on the Telegram messaging platform posing as President Volodymyr Zelenskiy urged his armed forces to surrender. Recently, Durav wrote on his Telegram channel that users' right to privacy, in light of the war in Ukraine, is "sacred, now more than ever." "Russians are really disconnected from the reality of what happening to their country," Andrey said. "So Telegram has become essential for understanding what's going on to the Russian-speaking world."
from vn


Telegram Type Driven Thoughts 🦀
FROM American