gpt4 book ai didi

maven - 函数参数名称中的点

转载 作者:行者123 更新时间:2023-12-01 09:55:06 26 4
gpt4 key购买 nike

在 powershell 中是否可以使用带点的参数名称?显而易见的方法 - 请参阅 Dmaven.failsafe.debug 失败:

function mvn-failsafe-debug {
param (
[string] $Dmaven.failsafe.debug="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=y,address=Maven,suspend=n",
[parameter(Position=0, ValueFromRemainingArguments=$true)]
$args
)
& "$env:M2_HOME\bin\mvn.bat" $args
}

最佳答案

Windows PowerShell Language Specification Version 3.0 .2.3.4 参数部分说

parameter-char:
Any Unicode character except
{ } ( ) ; , | & . [
colon
whitespace
new-line-character

因此,点并不是真正有效的参数名称字符。

有趣的是,可以定义一个带有点的参数,如 ${...}

param (
[string] ${Dmaven.failsafe.debug}
)

PowerShell 允许上述操作。但是在调用命令时很难指定这样的参数名称。


一些实验:

function Test-ParameterWithDots {
param(
[string]${Parameter.With.Dots}
)
"Parameter : ${Parameter.With.Dots}"
}

# OK
Test-ParameterWithDots value1

# not OK
Test-ParameterWithDots -Parameter.With.Dots value2

# workaround with splatting
$params = @{ 'Parameter.With.Dots' = 'value3' }
Test-ParameterWithDots @params

输出:

Parameter : value1
Parameter : .With.Dots
Parameter : value3

因此对于 spatting 我们仍然可以指定这样的参数名称。

关于maven - 函数参数名称中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com