Alguns e Nenhum, o que são?

Ao programar alguns pequenos exercícios para iniciantes tentando se acostumar com o Rust, me deparei com algumas saídas que não entendo usarVec::get. Aqui está o código:

fn main() {
    let command = [('G', 'H'), ('H', '5')];

    for i in 0..3 {
        print!(" {} ", i);
        println!("{:?}", command.get(i));
    }
}

a saída é

0 Some(('G', 'H'))
1 Some(('H', '5'))
2 None

Eu já me envolvi com Haskell antes, e com isso quero dizer que procurei em um site tutorial por 10 minutos e corri de volta para C ++, mas lembro-me de ler algo sobreSome eNone para Haskell. Fiquei surpreso ao ver isso aqui em Rust. Alguém poderia explicar por que.get() retornaSome ouNone?

questionAnswers(3)

yourAnswerToTheQuestion