Hugo Mills wrote:
>    If you were writing a function with a fast path and a slow path,
> which style would you use to write the function?
>
>
> Style A:
>
> if can_use_fast_path:
>       return "fast path result"
> # do slow stuff
> return "slow path result"
>
>
> Style B:
>
> result = "fast path result"
> if !can_use_fast_path:
>       # do slow stuff
>       result = "slow path result"
> return result
>
>
>    Assume that the fast path is a single expression, and the slow path
> is at least tens of lines of code. Why would you pick one style over
> the other?  Would you use a different idiom in different languages? If
> so, why?
>

I have used both in different contexts but where Perl will return the value
of the last expression evaluated in a subroutine ensuring the exit point is
at the end of a subroutine could mean more readable/consistent code, so B.

For error handling style B offers a single test opportunity. Perhaps for
maintenance ease this is a better choice producing a more robust idiom. It
may be more difficult to keep track of the value of result when using style B
where the danger of this is minimal in A as the exit point occurs as soon as
result receives a true value, minimising the chance of an incorrect value
accidentally being assigned to result due to a copy and paste or similar
error.

I think in general a single exit point has benefits over two.

Damian

-- 
WWW http://www.diaser.org.uk - working together to make long term digital
archives more accessible

RSS http://sourceforge.net/export/rss2_projnews.php?group_id=258272


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


-- 
Please post to: Hampshire@mailman.lug.org.uk
Web Interface: https://mailman.lug.org.uk/mailman/listinfo/hampshire
LUG URL: http://www.hantslug.org.uk
--------------------------------------------------------------

Reply via email to