91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

噶尔县| 当涂县| 八宿县| 于都县| 屏山县| 新沂市| 廊坊市| 孝感市| 惠安县| 大姚县| 交口县| 连城县| 黔西县| 民勤县| 阿巴嘎旗| 确山县| 马尔康县| 石林| 嘉义县| 桐庐县| 玉山县| 全州县| 西充县| 璧山县| 汶上县| 嘉善县| 克拉玛依市| 黔江区| 图们市| 左云县| 德格县| 乌兰察布市| 翁牛特旗| 资中县| 棋牌| 华容县| 正定县| 兴国县| 西安市| 克拉玛依市| 莱芜市|