• @Deckweiss
    link
    52 days ago

    confused java dev: what do you mean a function can’t return void???

    • @[email protected]
      link
      fedilink
      122 days ago

      void in Java and Void in Haskell are quite different. As the post explains, in Haskell it’s a type with no possible values. In Java, the equivalent would be a class without a constructor (not sure if that’s even possible). It defines a type, but you cannot construct a value or object with that type. The equivalent of Java‘s void in Haskell is the unit type () which has exactly one possible value, also called (). It can be returned by a function, but it does not give you any information, just like void. By the way, Rust also uses the unit type instead of void.

      • @[email protected]
        link
        fedilink
        52 days ago

        You do have a Void type in Java if you really must specify a return type and don’t want to return anything e.g. services and their tasks in JavaFx. The Task must have a return type thus you can use Void if the task doesn’t actually return anything.

        • Ephera
          link
          fedilink
          English
          41 day ago

          Well, yeah, but that Void type is different than the Void type in Haskell.

          The Haskell-Void says that the function never returns. So, for example, if the function always goes into an infinite loop. Or only ever throws an exception or does a System.exit(0). You cannot portray that in Java, to my knowledge.

      • @Deckweiss
        link
        12 days ago

        yeah that was the joke, thanks for explaining it