logoalt Hacker News

prydtyesterday at 6:01 PM1 replyview on HN

Looks like its a typo :(

The correct way to go about this would be to return the new balance and capture the return value in the first part of the out postcondition like:

```D double deposit(double amount) in (amount > 0, "Deposit amount must be positive") out (result; result == balance) { balance += amount; return balance; } ```

My mistake!

https://dlang.org/spec/function.html#postconditions


Replies

Jtsummersyesterday at 7:42 PM

HN does not use markdown code block formatting so this is hard to read. Formatting code blocks is simple, two blank spaces before any line to make it a code block and no need for extra newlines (unlike between paragraphs):

  double deposit(double amount)
    in (amount > 0, "Deposit amount must be positive")
    out (result; result == balance)
  {
    balance += amount;
    return balance;
  }