Function 另一个PowerShell返回问题

Function 另一个PowerShell返回问题,function,powershell,return,Function,Powershell,Return,我已经阅读了一些关于Powershell和return语句的帖子,但是这个脚本对我来说似乎非常简单: function test ($n) { if($n -lt 0) { return "negative" } return "positive" } 但当我执行它时: PS C:\Users\spadmin> test 5 positive PS C:\Users\spadmin> test -3 positive 这个输出毫无意义。为了

我已经阅读了一些关于Powershell和return语句的帖子,但是这个脚本对我来说似乎非常简单:

function test ($n) {
    if($n -lt 0) {
        return "negative"
    }
    return "positive"
}
但当我执行它时:

PS C:\Users\spadmin> test 5
positive
PS C:\Users\spadmin> test -3
positive
这个输出毫无意义。为了尝试更清晰,我将函数更改为:

function test1 ($n) {
    if($n -lt 0) {
        return "negative"
    } else {
        return "positive"
    }
}
我得到了同样的结果。如何让函数仅返回字符串“负”以表示小于零的输入值,以及“正”以表示大于或等于零的输入值?

使用类型化参数:

function test([Int] $n) {
...
使用类型化参数:

function test([Int] $n) {
...
试试这个

function test ([int]$n) {
    if($n -lt 0) {
        return "negative"
    }
    return "positive"
}
试试这个

function test ([int]$n) {
    if($n -lt 0) {
        return "negative"
    }
    return "positive"
}

好的,但是以下代码可以作为主线代码使用$n的正值或负值:
$n=5如果($n-lt 0){return“negative”}“positive”
为什么函数需要知道变量的类型而主线代码不知道?比较:
'-1','0'| sort
-1,0 |排序
-传递字符串参数,比较时,PowerShell将从右向左转换。比较:
0-lt'-1'
'-1'-lt 0
可以,但是以下代码可以作为主线代码使用$n的正值或负值:
$n=5如果($n-lt 0){返回“负值”}“正值”
为什么函数需要知道变量的类型而主线代码不知道?比较:
'-1','0'| sort
-1,0 | sort
-传递字符串参数,比较时,PowerShell从右向左转换。反向测试也可以,比较:
0-lt'-1'
'-1'-lt 0