亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Powershell -F 格式操作符

發布時間:2020-04-04 16:55:26 來源:網絡 閱讀:861 作者:beanxyz 欄目:開發技術

今天跟網友扯淡,網友給了兩行代碼,可以輸出以下的效果

1..9 | %{$a=@()} {$a+=$("{0}{1}{0}" -f (" " * (9-$_)),("$_" * (2*$_-1)))}{$a[0..8+7..0]} 
1..9 | %{$a=""}{for ($i=1;$i -le $_;$i++){$a+="{0,-7}" -f "   $i X $_=$($i*$_)"};$a+="`r`n"}{$a}


Powershell -F 格式操作符


第一眼看上去,老實承認真沒看懂這兩行怎么工作的,仔細學習了一會,終于明白了邏輯關系。

這兩行代碼主要利用的是PowerShell 里面利用-F的格式操作符。

參考資料如下

http://ss64.com/ps/syntax-f-operator.html


這個操作符主要有2個表達形式:


表達形式1

"String with placeholders" -f "Array of values to place into the placeholders"

比如說

Get-ChildItem c:\temp | ForEach-Object {'Filename: {0} Created: {1}' -f $_.fullname,$_.creationtime}

可以看見Filename的名字分配給了 fullname這個屬性;而Created分配給了creationtime這個屬性

Powershell -F 格式操作符


表達形式2, I表示位置,A表示空格位置,負數表示右邊加空格,正數表示左邊加空格,FS是一些格式選項,比如HEX進制,百分比等等。

 "{I,A:FS} {I,A:FS} {I,A:FS}.." -f "string0", "string1", "string2"...


上面提到的兩個例子主要就是利用了第二種表達方式。現在來仔細看看。


1..9 | %{$a=@()} {$a+=$("{0}{1}{0}" -f (" " * (9-$_)),("$_" * (2*$_-1)))}{$a[0..8+7..0]}


金字塔的基本原理都知道,算好每一行的空格和數字數量,然后寫循環就行。

首先 1到9 通過管道傳入,然后對于每一個數字,他創建了一個數組,{0}{1}{0} 對應后面提供的兩個字符串,剛好滿足“空格”+"數字"+"空格“這個格式。{0}對應的就是(" " *(9-$_)),{1}對應的就是("$_"*(2*$_-1))

累加起來,$a剛好就是金字塔的上半部分。最后通過$a[0..8]輸出上半截,$a[7..0]輸出下半截~



1..9 | %{$a=""}{for ($i=1;$i -le $_;$i++){$a+="{0,-7}" -f "   $i X $_=$($i*$_)"};$a+="`r`n"}{$a}


這個例子的思路也很相似。管道傳入每一個數字,分別列出來,{0,-7}表示的就是在當前輸出字符串右邊加7個空格而已;注意這個例子里面他初始化創建的$a是一個空字符串,因此加進去的時候每一個元素他不會像數組一樣自動換行,作者在每次循環結束加了個回車換行符。




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博湖县| 彩票| 大英县| 临邑县| 武城县| 天等县| 隆安县| 双牌县| 龙海市| 青田县| 康平县| 册亨县| 卓资县| 渭源县| 靖宇县| 崇阳县| 平定县| 明光市| 化州市| 宁海县| 安福县| 公主岭市| 东乡| 民权县| 靖远县| 梁山县| 芦溪县| 宜都市| 鲁山县| 浙江省| 东丰县| 阳高县| 梓潼县| 台前县| 抚顺县| 民勤县| 焦作市| 海晏县| 涟源市| 达尔| 灌南县|