PowerShell benar-benar mengembalikan semantik - setidaknya jika dilihat dari perspektif pemrograman yang lebih tradisional. Ada dua ide utama untuk membungkus kepala Anda:
- Semua output ditangkap, dan dikembalikan
- Kata kunci kembali benar-benar hanya menunjukkan titik keluar yang logis
Dengan demikian, dua blok skrip berikut akan melakukan hal yang sama persis secara efektif:
$a = "Hello, World"
return $a
$a = "Hello, World"
$a
return
Variabel $ a dalam contoh kedua dibiarkan sebagai output pada pipeline dan, sebagaimana disebutkan, semua output dikembalikan. Bahkan, dalam contoh kedua Anda bisa menghilangkan pengembalian sepenuhnya dan Anda akan mendapatkan perilaku yang sama (pengembalian akan tersirat sebagai fungsi secara alami melengkapi dan keluar).
Tanpa lebih banyak definisi fungsi Anda, saya tidak bisa mengatakan mengapa Anda mendapatkan objek PSMethod. Dugaan saya adalah bahwa Anda mungkin memiliki sesuatu beberapa baris di atas yang tidak ditangkap dan ditempatkan pada pipa keluaran.
Perlu juga dicatat bahwa Anda mungkin tidak membutuhkan titik koma itu - kecuali jika Anda bersarang banyak ekspresi pada satu baris.
Anda dapat membaca lebih lanjut tentang semantik kembali di halaman about_Return di TechNet, atau dengan menjalankan help return
perintah dari PowerShell itu sendiri.