2013-12-01 3 views
3

Какова основная цель [char []] в PowerShell. Разбирает ли он массив символов? Например:Назначение [Char []] в PowerShell

$random = Get-Random -Minimum 0 -Maximum 5; 
$names="America","Iran","Poland","Cat","PowerShell"; 
$targetWord = $names[$random]; 
[Char[]]$wordProgress = "_" * $targetWord.Length 
+0

Является ли «написать игру палача» общим проектом для курсов PowerShell? На каком уровне обучается этот проект? Мне просто любопытно, я ничего не имею против этого вопроса, если это связано с домашней работой. Я знаю, что я видел по меньшей мере двух других вопросов «палача PowerShell» на SO. – jscott

+0

^Да, это игра палача в powerShell. Это от SE. –

+1

Чтобы ответить на то, что вы действительно задали здесь: цель '[char []]' заключается в том, чтобы фактически передать значение в char-array, так же, как вы могли бы использовать практически любой другой тип .Net. :) –

ответ

4

PowerShell по умолчанию имеет тип заливки на лету, так как операции называют их.

$MyAnswer = 4 + 4 
Write-Host $MyAnswer 

Увидит операцию 4 +-и хранить их как целое значение 8. В приведенной выше сценарии он будет записать целое число 8.

PowerShell также гибкий для строгих типажей, где вы можете явно использовать тип данных

$MyAnswer = [string]4 + 4 
Write-Host $MyAnswer 

и

$MyAnswer = "4" + "4" 
Write-Host $MyAnswer 

Оба они будут видеть, т он два 4 в виде строки и выписывает «44»

Что касается сценария выше, он создает массив символов из символов «_» для каждой буквы (char) в переменной $ targetWord.

Если запустить его из консоли, и сделать

записи хоста $ targetWord записи хоста $ wordProgress

Вы получаете (в моем случае)

America 
_ _ _ _ _ _ _ 

В [полукокса []] является просто явным объявлением массива символов, чтобы преодолеть любое нечетное поведение PowerShell по умолчанию.

+0

«_» * $ targetWord.Length что это такое –

+0

Его операция умножения, она имеет символ «_» раз длину слова в переменной $ targetWord. –

+0

ладно, я понял! –

Смежные вопросы