Dizileri PowerShell'deki İşlevlere Aktarma
Bir diziyi PowerShell işlevine aktarmanız mı gerekiyor? Bu PowerShell eğitiminde dizilerin PowerShell'deki işlevlere nasıl aktarılacağını örneklerle açıklayacağım.
PowerShell'deki bir işleve bir dizi iletmek için, bir dizi türünü kabul edecek işlev parametresini tanımlayın ve ardından işlevi diziyle birlikte bağımsız değişken olarak çağırın. Örneğin, Get-Data([array]$items) { … } işlevi bir diziyi kabul eden bir işlevi tanımlar ve Get-Data $myArray diziyi işleve iletir.
PowerShell'de İşlevleri Bildirin
PowerShell'de, function anahtar sözcüğünü, ardından işlevin adını ve kod bloğunu içeren bir çift küme parantezi {'yi kullanarak bir işlev bildirebilirsiniz.
function MyFunction {
# Code goes here
}Şimdi bir diziyi PowerShell fonksiyonuna nasıl aktaracağımızı görelim.
Dizileri PowerShell'deki İşlevlere Aktarma
Bir diziyi PowerShell'deki bir işleve geçirmek basittir. Fonksiyonda bir parametre tanımlarsınız ve fonksiyonu çağırırken diziyi ona iletirsiniz.
Yöntem 1: Doğrudan Geçiş
Bir diziyi doğrudan PowerShell'deki bir işleve nasıl aktaracağınıza dair bir örnek:
function Process-Array ($array) {
foreach ($item in $array) {
Write-Host "Processing item: $item"
}
}
# Define an array
$numbers = 1..5
# Pass the array to the function
Process-Array -array $numbersBu örnekte, $numbers, 1'den 5'e kadar bir tamsayı dizisidir. Process-Array işlevi, $array adında bir parametre alır ve dizideki her öğeyi foreach döngüsüyle işler.
Yukarıdaki PowerShell betiğini VS kodunu kullanarak çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
Yöntem 2: Splatting'i Kullanma
Splatting, parametre değerlerini tutmak için karma tablo veya dizi kullandığınız işlevlere parametreleri aktarma yöntemidir. PowerShell'de bir diziyle sıçramayı nasıl kullanacağınız aşağıda açıklanmıştır:
function Get-Total ($numbers) {
$sum = 0
foreach ($number in $numbers) {
$sum += $number
}
return $sum
}
# Define an array
$numbers = 1..5
# Splatting the array to the function
$total = Get-Total -numbers $numbers
Write-Host "The total is: $total"Bu örnekte Get-Total işlevi dizideki sayıların toplamını hesaplar. Bu durumda sıçrama, doğrudan geçişten farklı değildir ancak çok fazla parametreniz olduğunda kullanışlıdır.
Yöntem 3: Referansa Göre Geçme
Ayrıca bir diziyi, işlevin orijinal diziyi değiştirmesine olanak tanıyan bir PowerShell işlevine referansla da iletebilirsiniz.
Burada bir dizinin PowerShell'deki bir işleve nasıl aktarılacağına dair tam bir örnek verilmiştir.
function Add-Element ([ref]$array, $newElement) {
$array.Value += $newElement
}
# Define an array
$numbers = @(1, 2, 3)
# Pass the array by reference to the function
Add-Element ([ref]$numbers) 4
Write-Host "Array after adding element: $numbers"Bu betiği çalıştırdığınızda, Add-Element işlevi orijinal diziye yeni bir öğe ekler ve yeni öğenin eklendiği güncellenmiş diziyi görebilirsiniz. Betiği çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.
Fonksiyonlarda Dizilerle Çalışmaya İlişkin İpuçları
- Bir dizi için bir işlev parametresi tanımlarken,
[array]veya[type[]](buradatype) kullanarak bunu açıkça bir dizi türü olarak bildirebilirsiniz. dizi elemanlarının spesifik veri türüdür. - Kodunuzu daha okunabilir hale getirmek için işlev parametreleriniz için anlamlı adlar kullanın.
- PowerShell'deki dizilerin sıfır dizinli olduğunu, yani ilk öğenin 0 dizininde olduğunu unutmayın.
Çözüm
PowerShell'de bir diziyi bir işleve aktarmanın farklı yolları vardır. Bu PowerShell eğitiminde, aşağıdaki yöntemleri kullanarak dizilerin PowerShell'de çalışacak şekilde nasıl aktarılacağını anlattım:
- Doğrudan Geçiş
- Splatting'i kullanma
- Referansla Geçme

