Made with KolourPaint and screenshots from Kate (with the GitHub theme).

  • ThirdConsul@lemmy.ml
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    11 days ago

    To be honest I always disliked variable declaration without value assignment, so to me both options suck. :)

    • CarrotsHaveEars@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      11 days ago

      What about you declare (then it gets allocated in stack) it and pass it to a different context for assignment?

      • ThirdConsul@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        11 days ago

        Well, I don’t know your use case well enough, but I guess you might have perfect reason for that behavior.

        One thing that comes to my mind is the old Try in C#

        bool parsedSuccessfully = int.TryParse("123", out int result);
        

        But I guess more popular approach would be to use Error as Values, right?

        Outcome<Exception, Int> result = int.TotallyNewParse("123");
        
          • ThirdConsul@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            10 days ago

            Great example.

            Wouldn’t getchar() be more appropriate here? Last time I used C it was 16 years ago.

            • CarrotsHaveEars@lemmy.ml
              link
              fedilink
              arrow-up
              2
              ·
              10 days ago

              Yes, and no, sir, you missed the point. The procedure here is to allocate then give away, not reading a fixed-length returned value.

              Say you can only afford to have ten bytes in the stack. You allocate char s[10]; then give it to a library to parse something. Also telling it to abort if it’s going to be longer than ten bytes, of course.