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: |

Sebi said data, emails and other documents are being retrieved from the seized devices and detailed investigation is in progress. In the past, it was noticed that through bulk SMSes, investors were induced to invest in or purchase the stocks of certain listed companies. But the Ukraine Crisis Media Center's Tsekhanovska points out that communications are often down in zones most affected by the war, making this sort of cross-referencing a luxury many cannot afford. "There are a lot of things that Telegram could have been doing this whole time. And they know exactly what they are and they've chosen not to do them. That's why I don't trust them," she said. But Kliuchnikov, the Ukranian now in France, said he will use Signal or WhatsApp for sensitive conversations, but questions around privacy on Telegram do not give him pause when it comes to sharing information about the war.
from sa


Telegram Type Driven Thoughts 🦀
FROM American