最近在学 Powershell, 发现语法和PHP很像, 但又有一些不太一样, 先放上递归的实现:
// helloacm.com function Fib($n) { switch ($n) { 0 { 1; break } 1 { 1; break } default { # 必须用 () 括号, 类似 js 里的 eval (Fib($n - 1)) + (Fib($n - 2)) } } }
更为简短的:
// helloacm.com function Fib($n) { if ($n -eq 1 -or $n -eq 0) { return 1 } (Fib($n - 1)) + (Fib($n - 2)) # 必须用 () 括号, 类似 js 里的 eval }
非递归的:
// helloacm.com function Fib() { param ($n) $a = 0 $b = 1 for ($i = 1; $i -le $n; $i ++) { $c = $a + $b $a = $b $b = $c } $c }
其中 也可以用 foreach 来实现 loop
foreach ($i in 1.$n) { }
几点学习体会:
1. 参数可以在函数里写, 这个在C语言里是一样的.
2. 变量是可以用类型的, 比如你可以用 param([int]$n) 来声明 $n 是整形 (32 位)
3. 比较大于,小于等于, 都用LINUX下判断的风格, -gt, -lt, -eq, 逻辑 and, or 也是类似: -and, -or
4. for 和 C/C++ 里的一样
5. 变量声明和 PHP 里一样, 而且都必须是于 $ 符号开始.
6. return 和 exit 都是从函数里退出, 但是如果后面已经没有执行语句, 则可以省略.
英文同步: https://helloacm.com/learning-powershell-recursive-fibonacci-computation/
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK