Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ham Ömürler

Özet

  • 'r#ident_or_keyword artık bir ömür olarak kullanılabilir; böylece 'r#fn gibi anahtar kelimeler de ömür adı olarak yazılabilir.

Ayrıntılar

Ham ömürler, yeni anahtar kelimeler getiren daha yeni sürümlere taşınmayı kolaylaştırmak için 2021 sürümünde eklendi. Bu özellik, tanımlayıcılar için aynı işi yapan [ham tanımlayıcılar] ile benzerdir. Örneğin 2024 sürümü gen anahtar kelimesini getirdi. Ömürler anahtar kelime olamayacağı için 'gen ömrünü kullanan kod derlenmez hale gelirdi. Ham ömürler sayesinde taşıma lint’i bu tür ömürleri 'r#gen biçimine dönüştürebilir ve böylece anahtar kelimeler kullanılabilir hale gelir.

2021 öncesi sürümlerde ham ömürler ayrı token’lar olarak ayrıştırılır. Örneğin 'r#foo, üç token şeklinde yorumlanır: 'r, # ve foo.

Taşıma

2021 sürümünün bir parçası olarak, Rust 2018 kod tabanlarını Rust 2021’e otomatik taşımaya yardımcı olmak için rust_2021_prefixes_incompatible_syntax lint’i eklendi.

Kodunuzu Rust 2021 ile uyumlu hale getirmek için şunu çalıştırın:

cargo fix --edition

Kodunuzu elle taşımak isterseniz ya da buna ihtiyaç duyarsanız süreç oldukça düzdür.

Şöyle tanımlanmış bir makronuz olduğunu varsayalım:

#![allow(unused)]
fn main() {
macro_rules! benim_makrom {
    ($a:tt $b:tt $c:tt) => {};
}
}

Rust 2015 ve 2018’de, token’lar arasına boşluk koymadan bu makroyu şu şekilde çağırmak geçerlidir:

benim_makrom!('r#foo);

2021 sürümünde bu artık tek bir token olarak ayrıştırılır. Bu yüzden makroyu çağırmak için tanımlayıcıdan önce şu şekilde boşluk eklemeniz gerekir:

benim_makrom!('r# foo);