const
Sabitler (constants) derleme zamanında (compile-time) değerlendirilir ve değerleri kullanıldıkları her yerde satır içi (inline) olarak belirtilir:
const DIGEST_SIZE: usize = 3; const FILL_VALUE: u8 = calculate_fill_value(); const fn calculate_fill_value() -> u8 { if DIGEST_SIZE < 10 { 42 } else { 13 } } fn compute_digest(text: &str) -> [u8; DIGEST_SIZE] { let mut digest = [FILL_VALUE; DIGEST_SIZE]; for (idx, &b) in text.as_bytes().iter().enumerate() { digest[idx % DIGEST_SIZE] = digest[idx % DIGEST_SIZE].wrapping_add(b); } digest } fn main() { let digest = compute_digest("Hello"); println!("digest: {digest:?}"); }
Rust RFC Book’a göre bunlar kullanım sırasında satır içidir (inline).
Sadece const
olarak işaretlenen fonksiyonlar derleme zamanında çağrılarak const
değerler üretilebilir. Ancak const
fonksiyonlar çalışma zamanında da çağrılabilir.
This slide should take about 10 minutes.
const
’un C++’ınconstexpr
’ına anlamsal olarak benzer davrandığını belirtin