ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ Π½Π°Ρ‡ΠΈΠ½ Π·Π° заобикалянС Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π·Π° Π·Π°Π΅ΠΌΠΈ Π² Rust.

Jakub KΔ…dzioΕ‚ka ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° доказатСлство Π·Π° концСпцията, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‰ΠΎ нСпосрСдствСнитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π³Ρ€Π΅ΡˆΠΊΠ° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Rust, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π±Π΅Π·ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° Ρ€Π΅ΡˆΠ°Ρ‚ Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΎΡ‚ Jakub, Π²ΠΈ позволява Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡ‚Π΅ Borrow Checker с ΠΌΠ½ΠΎΠ³ΠΎ прост Ρ‚Ρ€ΠΈΠΊ:

fn main() {
Π½Π΅ΠΊΠ° Π±ΡƒΠΌ = fake_static::make_static(&vec![0; 1<<20]);
println!("{:?}", Π±ΡƒΠΌ);
}

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠ»ΠΈ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π° Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ†Π΅Π»Ρ‚Π° ΠΌΡƒ Π΅ само Π΄Π° ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ към ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Rust.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€