【发布时间】:2019-10-29 09:53:49
【问题描述】:
我正在尝试用 Powershell 脚本制作一个简单的二十一点游戏,但发现我的 ArrayList 没有按预期运行。我想了解为什么我得到的答案与预期的不同。
函数内部的Write-Host $deck 调用按我的预期打印出甲板,52 个对象。到目前为止一切顺利。
然而,当调用Write-Host $myDeck 时,奇怪的部分开始了。它会做的是,它会首先打印 0...51,然后是我的实际套牌。因此,我的ArrayList 中没有 52 个对象,而是得到 104 (52+52)。谁能解释这里到底发生了什么?因为我觉得这超级混乱。
function Get-Deck(){
$ranks = 2,3,4,5,6,7,8,9,10,"Jack","Queen","King","Ace"
$suits = "Spade","Heart","Diamond","Club"
$deck = [System.Collections.ArrayList]::new()
foreach($rank in $ranks){
foreach($suit in $suits){
$card = $rank , $suit
$deck.Add($card)
}
}
Write-Host $deck #prints out the actual array with 52 cards.
return $deck
}
$myDeck = Get-Deck
Write-Host $myDeck #prints out: 0 1 2 3 4 5 6 7 ... 51 2 Spade 2 Heart 2 Diamond ... Ace Club
【问题讨论】:
-
这是产生它的方法。尝试如下修改这一行: $deck.Add($card) |外空
标签: arrays powershell arraylist