麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PowerShell > 正文

PowerShell中的加法運算詳解

2020-10-29 20:56:34
字體:
供稿:網(wǎng)友

大家已經(jīng)PowerShell中的運算符有了一定感性的認(rèn)識。我們首先來學(xué)習(xí)“+”運算符。PowerShell定義了“+”運算符處理數(shù)值類型、字符串類型、數(shù)組類型和哈希表類型的具體行為。在進(jìn)行數(shù)值計算時,“+”和平時的數(shù)值計算規(guī)則基本一樣。不過需要注意,由于計算機內(nèi)部表示不同數(shù)值類型時,使用的存儲空間不同,因此這些類型都只能表示一個范圍內(nèi)的數(shù)據(jù)。在進(jìn)行數(shù)值運算的過程中,如果計算結(jié)果超過了參與計算數(shù)值類型的值域時,PowerShell將會自動進(jìn)行類型轉(zhuǎn)換,使用值域更大的數(shù)據(jù)類型來保存結(jié)果。例如:

PS C:/> 9 + 1120PS C:/> (9 + 11).GetType().FullNameSystem.Int32PS C:/> [int]::MaxValue + 12147483648PS C:/> ([int]::MaxValue + 1).GetType().FullNameSystem.DoublePS C:/> [int]::MinValue - 1-2147483649PS C:/> ([int]::MinValue - 1).GetType().FullNameSystem.Double

例子中的[int]::MaxValue表示類型int的最大值,如果再執(zhí)行“+ 1”的運算,就會導(dǎo)致該數(shù)值超出int類型的值域,因此PowerShell自動將數(shù)據(jù)類型轉(zhuǎn)換為Double類型。類似的,[int]::MinValue表示了int類型的最小值。

當(dāng)對字符串類型操作數(shù)使用“+”運算符時,PowerShell將會對字符串進(jìn)行連接操作,返回一個新的字符串,這種操作在C#語言中、SQL Server數(shù)據(jù)庫的T-SQL語法中是一致的。例如:

PS C:/> "Hello" + " " + "world!"Hello world!

當(dāng)對數(shù)組類型操作數(shù)使用“+”運算符時,將會執(zhí)行數(shù)組連接操作,返回一個新的數(shù)組,這與在C#語言中的行為一致。例如:

PS C:/> $array1 = 1,2,3PS C:/> $array2 = 4,5PS C:/> $array3 = $array1 + $array2PS C:/> "$array3"1 2 3 4 5

例子中首先定義了數(shù)組array1,它包含1、2和3這三個元素。接下來用數(shù)組array1與數(shù)組array2相加,并將返回結(jié)果存儲在變量array3中。最后,輸出數(shù)組中的元素到控制臺。在PowerShell中,雙引號中引用數(shù)組時,數(shù)組的每個元素將會被存儲在變量$ofs中的字符串相互連接,并輸出。(“$ofs”的默認(rèn)值為空格字符)。

當(dāng)對哈希表類型操作數(shù)使用“+”運算符時,PowerShell將把“+”右邊的哈希表鍵值對添加到左邊的哈希表中。如果添加的鍵值已經(jīng)存在于左邊哈希表中,PowerShell就會給出錯誤提示。例如:

PS C:/> $dev = @{ Tom = 1; Jerry = 2}PS C:/> $sale = @{ Hero = 1; }PS C:/> $dev + $saleName              Value----              -----Tom              1Jerry             2Hero              1

例子的開頭定義了哈希表dev,它包含了研發(fā)部門的員工Tom和Jerry。接下來定義了哈希表sale,員工只有Hero一人。將dev和sale相加后得到包含這三名員工的新哈希表。如果右邊哈希表中包含了與左邊哈希表相同的鍵值對,PowerShell將會給出錯誤信息:

PS C:/> $manager = @{ Tom = 3 }PS C:/> $dev + $managerBad argument to operator '+': 已添加項。字典中的關(guān)鍵字:“Tom”所添加的關(guān)鍵字:“Tom”.At line:1 char:7+ $dev + <<<< $manager

在前面的例子中,都是相同類型的對象相加。您可能正在思考,如果在“+”兩邊不是相同類型的對象,結(jié)果到底會是什么呢?下面是一些常見的情況:

PS C:/> 123 + '23'146PS C:/> 123 + '0xa'133PS C:/> 4 + 'test'Cannot convert value "test" to type "System.Int32". Error: "Input string was not in a correct format."At line:1 char:4+ 4 + <<<< 'test'PS C:/> '02' + 730273

PowerShell在發(fā)現(xiàn)“+”運算符時,將會根據(jù)左操作數(shù)的類型來決定計算的規(guī)則。在第一個表達(dá)式中123 + '23'中,123是整數(shù),因此“+”執(zhí)行數(shù)值加法運算。但是由于右操作數(shù)是字符串類型,因此PowerShell首先對該操作數(shù)進(jìn)行類型轉(zhuǎn)換。所以最后,我們看到結(jié)果為數(shù)值類型的值:146。第二個例子中,字符串包含了一個整數(shù)的十六進(jìn)制表示形式,PowerShell將該數(shù)值正確轉(zhuǎn)換成數(shù)值類型并進(jìn)行計算。第三個例子中,字符串'test'是無法轉(zhuǎn)換為整數(shù)類型的,因此PowerShell給出錯誤信息:“輸入串的格式不正確”。第四個例子中,左操作數(shù)變成了包含數(shù)字的字符串,因此PowerShell執(zhí)行了字符串的連接操作。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 91久久精品一二三区 | 在线免费日韩 | 青青草在线免费观看 | 春光影院理论片 | 91久久国产露脸精品国产护士 | 成人午夜免费看 | 国产精品69久久 | 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | 久久亚洲精品久久国产一区二区 | 天天草天天干天天射 | 麻豆视频在线免费观看 | 神马视频我不卡 | 日本高清无遮挡 | 欧美日韩激情 | 九九视频在线观看6 | 人成免费a级毛片 | 97风流梦电影 | 国产女厕一区二区三区在线视 | 亚洲综合一区在线观看 | 色播视频网站 | 深夜福利视频免费观看 | 黄色大片在线免费看 | 日本看片一区二区三区高清 | 日韩欧美激情视频 | av成人免费在线观看 | 精品呦女 | 黄色小视频在线免费看 | 88xx成人精品视频 | 蜜桃精品视频在线观看 | av在线播放电影 | 欧美视频一级 | 久久艹国产精品 | 欧美三级欧美成人高清www | 欧美精品成人一区二区在线观看 | 日韩欧美电影一区二区三区 | 久久看免费视频 | 国产中文av在线 | 黄色片免费在线播放 | 成人毛片免费视频 | 婷婷亚洲一区二区三区 | 精品一区二区三区四区在线 |