News for hackers. Stuff that matters.
Re:PowerShell is open sourced and is available on Linux by emodendroket on Thursday August 18, 2016 @12:37PM (#12314003)
Not if you're in a script and declaring a function. So, no, it's a source of confusing bugs. Implicit return works better in, like, Ruby, where it has to be at the end and can't just randomly exit in the middle of a function declaration.
Re:PowerShell is open sourced and is available on Linux by new_hackers on Thursday August 18, 2016 @12:39PM (#12314021)
ArrayList.Add ... whatever ... | Out-Null

Its not implicitly returning. The return value wasn't assigned so it is emitted to the pipeline.

Re:PowerShell is open sourced and is available on Linux by emodendroket on Thursday August 18, 2016 @12:50PM (#12314134)
OK, sorry (there is an explicit "return" keyword that I thought worked the same way). Either way, yes, I know you can avoid it by piping to Out-Null, but that behavior is surprising.
Re:PowerShell is open sourced and is available on Linux by ygra on Thursday August 18, 2016 @02:11PM (#12314973)

    return {expression}
is equivalent to

    {expression}
    return
the only place you have an exit from a function, script block or similar is either at the end or at a return statement. Every value that isn't assigned or piped into nirvana gets pushed to the pipeline. I actually can't remember having used return statements more often than once or twice so far (and I use PowerShell daily, heavily).

Then I rarely found the need to use ArrayList. Sure, you can use it, but you can just as well do

    $array = @()
    $array += $item
A personal pet peeve of mine is actually that lots of people write PowerShell very similar to equivalent VBScript or C# code. And that makes for horrible PowerShell code (in my eyes). The pipeline is immensely powerful and not using it often makes for pretty crappy code.
Re:PowerShell is open sourced and is available on Linux by emodendroket on Thursday August 18, 2016 @03:10PM (#12315465)
Most people writing PowerShell scripts are likely dabblers though. Anyway, I have to admit I don't really appreciate the whole pipeline idea; I just know that `$something = Some-Function` sometimes wouldn't do what I thought it would because of these semantics.