Result

Основним ΠΌΠ΅Ρ…Π°Π½Ρ–Π·ΠΌΠΎΠΌ ΠΎΠ±Ρ€ΠΎΠ±ΠΊΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ Ρƒ Rust Ρ” ΠΏΠ΅Ρ€Π΅Π»Ρ–ΠΊ Result, який ΠΌΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ розглядали ΠΏΡ–Π΄ час обговорСння стандартних Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅Ρ‡Π½ΠΈΡ… Ρ‚ΠΈΠΏΡ–Π².

use std::fs::File;
use std::io::Read;

fn main() {
    let file: Result<File, std::io::Error> = File::open("diary.txt");
    match file {
        Ok(mut file) => {
            let mut contents = String::new();
            if let Ok(bytes) = file.read_to_string(&mut contents) {
                println!("Π”ΠΎΡ€ΠΎΠ³ΠΈΠΉ Ρ‰ΠΎΠ΄Π΅Π½Π½ΠΈΠΊ: {contents} ({bytes} Π±Π°ΠΉΡ‚Ρ–Π²)");
            } else {
                println!("НС вдалося ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ вміст Ρ„Π°ΠΉΠ»Ρƒ");
            }
        }
        Err(err) => {
            println!("Π©ΠΎΠ΄Π΅Π½Π½ΠΈΠΊ Π½Π΅ вдалося Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈ: {err}");
        }
    }
}
This slide should take about 5 minutes.
  • Result ΠΌΠ°Ρ” Π΄Π²Π° Π²Π°Ρ€Ρ–Π°Π½Ρ‚ΠΈ: Ok, який ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ значСння успіху, Ρ– Err, який ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ дСякС значСння ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ.

  • Π§ΠΈ ΠΌΠΎΠΆΠ΅ функція спричинити ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ, ΠΊΠΎΠ΄ΡƒΡ”Ρ‚ΡŒΡΡ Ρƒ сигнатурі Ρ‚ΠΈΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, яка ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” значСння Result.

  • Π―ΠΊ Ρ– Ρƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ Π· Option, Π²ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±ΡƒΡ‚ΠΈ ΠΎΠ±Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ: Π’ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ доступ Π½Ρ– Π΄ΠΎ значСння успіху, Π½Ρ– Π΄ΠΎ значСння ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ Π±Π΅Π· ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎΡ— ΠΎΠ±Ρ€ΠΎΠ±ΠΊΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π½Π° Result, Ρ‰ΠΎΠ± ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚ΠΈ, який самС Π²Π°Ρ€Ρ–Π°Π½Ρ‚ Π²ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Π»ΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π° ΠΊΡˆΡ‚Π°Π»Ρ‚ unwrap ΠΏΠΎΠ»Π΅Π³ΡˆΡƒΡŽΡ‚ΡŒ написання швидкого Ρ– Π±Ρ€ΡƒΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρƒ, який Π½Π΅ Π·Π°Π±Π΅Π·ΠΏΠ΅Ρ‡ΡƒΡ” Π½Π°Π΄Ρ–ΠΉΠ½Ρƒ ΠΎΠ±Ρ€ΠΎΠ±ΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ, Π°Π»Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ Π²ΠΈ Π·Π°Π²ΠΆΠ΄ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚ΠΈ Ρƒ Π²ΠΈΡ…Ρ–Π΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρ–, Π΄Π΅ Π±ΡƒΠ»ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π½Π°Π»Π΅ΠΆΠ½Ρƒ ΠΎΠ±Ρ€ΠΎΠ±ΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ.

Π‘Ρ–Π»ΡŒΡˆΠ΅ Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–Ρ— для вивчСння

МоТС Π±ΡƒΡ‚ΠΈ корисно порівняти ΠΎΠ±Ρ€ΠΎΠ±ΠΊΡƒ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ Ρƒ Rust Π·Ρ– стандартами ΠΎΠ±Ρ€ΠΎΠ±ΠΊΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ, Π· якими студСнти ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π·Π½Π°ΠΉΠΎΠΌΡ– Π· Ρ–Π½ΡˆΠΈΡ… ΠΌΠΎΠ² програмування.

Π’ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ

  • Π‘Π°Π³Π°Ρ‚ΠΎ ΠΌΠΎΠ² Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ Π²ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, C++, Java, Python.

  • Π£ Π±Ρ–Π»ΡŒΡˆΠΎΡΡ‚Ρ– ΠΌΠΎΠ² Π· Π²ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡΠΌΠΈ інформація ΠΏΡ€ΠΎ Ρ‚Π΅, Ρ‡ΠΈ ΠΌΠΎΠΆΠ΅ функція Π·Π³Π΅Π½Π΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ Π²ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ, Π½Π΅ Π²Ρ–Π΄ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ”Ρ‚ΡŒΡΡ Ρƒ сигнатурі Ρ—Ρ— Ρ‚ΠΈΠΏΡƒ. Π¦Π΅ Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ ΠΏΡ€ΠΈ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Π²ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ, Ρ‡ΠΈ ΠΌΠΎΠΆΠ΅ Π²ΠΎΠ½Π° Π·Π³Π΅Π½Π΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ Π²ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ.

  • Π’ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ, як ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€ΠΎΠ·ΠΌΠΎΡ‚ΡƒΡŽΡ‚ΡŒ стСк Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π², ΠΏΠΎΡˆΠΈΡ€ΡŽΡŽΡ‡ΠΈΡΡŒ Π²Π³ΠΎΡ€Ρƒ, ΠΏΠΎΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅ досягнуто Π±Π»ΠΎΠΊΡƒ try. Помилка, Ρ‰ΠΎ Π²ΠΈΠ½ΠΈΠΊΠ»Π° Π³Π»ΠΈΠ±ΠΎΠΊΠΎ Ρƒ стСку Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π², ΠΌΠΎΠΆΠ΅ Π²ΠΏΠ»ΠΈΠ½ΡƒΡ‚ΠΈ Π½Π° Π½Π΅ пов’язану Π· нСю Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΡŽ, Ρ€ΠΎΠ·Ρ‚Π°ΡˆΠΎΠ²Π°Π½Ρƒ Π²ΠΈΡ‰Π΅.

Коди помилок

  • Π£ дСяких ΠΌΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ (Π°Π±ΠΎ Ρ–Π½ΡˆΠ΅ значСння ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ) ΠΎΠΊΡ€Π΅ΠΌΠΎ Π²Ρ–Π΄ ΡƒΡΠΏΡ–ΡˆΠ½ΠΎΠ³ΠΎ значСння, якС ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” функція. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡŒ C Ρ‚Π° Go.

  • Π—Π°Π»Π΅ΠΆΠ½ΠΎ Π²Ρ–Π΄ ΠΌΠΎΠ²ΠΈ ΠΌΠΎΠΆΠ½Π° Π·Π°Π±ΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚ΠΈ значСння ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ, Ρ– Π² Ρ†ΡŒΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ доступ Π΄ΠΎ Π½Π΅Ρ–Π½Ρ–Ρ†Ρ–Π°Π»Ρ–Π·ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ Π°Π±ΠΎ Ρ–Π½ΡˆΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ нСдійсного значСння ΡƒΡΠΏΡ–ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ.