在powershell中想打印3行“Hello World!”,则可以简单地使用for循环来实现:
# -lt 表示小于
for ($i = 0; $i -lt 3; $i++) {
Write-Host "Hello World!"
}
pause # 暂停脚本运行结果:

现在我们把这个改成lambda方式实现。定义一个函数,第一个参数为循环几次,第二个参数接受一个“lambda对象”,每次循环给它传递$i的值,并运行其中的代码。
如果你比较熟悉Kotlin,你就会发现这其实就是Kotlin的一个高阶函数“repeat”。(点击跳转CSDN查看介绍)
powershell没有原生的lambda设计,但是可以借助scriptblock代码块来实现相同的效果,具体实现:
# Powershell 函数的命名风格是大写字母开头
function Repeat ([int]$times, [scriptblock]$lambda) {
for ($i = 0; $i -lt $times; $i++) {
# & 符号用来运行代码块,$result是lambda每次运行的返回值,$i是每次向lambda传递的参数
$result = & $lambda $i
# 打印 $result 的值
Write-Host $result
}
}
# 调用Repeat函数,参数要使用空格分隔。param用于接受参数。
Repeat (5) { param ($i)
# return 关键字可以省略
# -join 用于连接字符串
# $($i + 1) 表示数学运算,$i + 1 只是连接字符串
return -join ("第", $($i + 1), "次打印 Hello World!")
}
pause # 暂停脚本运行结果:

各位如果觉得有用请点击下方的打赏,扫描二维码给我投币,创作不易,感谢支持!