• shape_warrior_t@programming.dev
    link
    fedilink
    English
    arrow-up
    14
    ·
    17 hours ago

    Can’t resist pointing out how you should actually write the function in a “real” scenario (but still not handling errors properly), in case anyone wants to know.

    If the list is guaranteed to have exactly two elements:

    fn is_second_num_positive_exact(input: &str) -> bool {
        let (_, n) = input.split_once(',').unwrap();
        n.parse::<i32>().unwrap() > 0
    }
    

    If you want to test the last element:

    fn is_last_num_positive(input: &str) -> bool {
        let n = input.split(',').next_back().unwrap();
        n.parse::<i32>().unwrap() > 0
    }
    

    If you want to test the 2nd (1-indexed) element:

    fn is_second_num_positive(input: &str) -> bool {
        let n = input.split(',').nth(1).unwrap();
        n.parse::<i32>().unwrap() > 0
    }
    
    • beeb@lemmy.zip
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 hours ago

      Even better to use expect with a short message of what the assumption is: “the string should contain a comma” if it ever panics you’ll know exactly why.