我正在学习使用PowerShell编写脚本,并且发现了这段代码将对我的项目有帮助。该示例来自Is there a one-liner for using default values with Read-Host?。
$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
$prompt = ($defaultValue,$prompt)[[bool]$prompt]
我想我知道
$prompt = ($defaultValue,$prompt)
正在创建一个由两个元素组成的数组,并且[bool]
部分正在将$prompt
数据类型强制为 bool(boolean) 值,但是我不理解第三行代码的整体功能。 最佳答案
根据变量是否为空($prompt
或空字符串都变为[bool]
)(非空字符串变为$true
),将$false
转换为$null
会生成$false
或$true
的值。
[bool]''→$ false
[bool]“某物”→$ true
然后在索引运算符中使用该 bool(boolean) 值,然后将该值隐式转换为一个整数,其中$false
变为0而$true
变为1,从而选择数组的第一个或第二个元素。
[int] $ false→0
[int] $ true→1
($ defaultValue,$ prompt)[0]→$ defaultValue
($ defaultValue,$ prompt)[1]→$ prompt
关于powershell - $ prompt =($ defaultValue,$ prompt)[[bool] $ prompt]-在PowerShell中模拟三元条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40892156/