Nedávno jsem narazil na „záhadu“. Schválně, jestli jí přijdete na kloub. Bude to jednoduchá funkce s jedním řádkem v těle, takže se nebojte.
Nejdřív první příklad:
Co myslíte, že ten kód vrátí? Správně, „abcdefgh“. Tak a teď ta slibovaná záhada. Zkusme to s velkými písmeny:
Co myslíte, že ten kód vrátí? Koukněte pozorně a přemýšlejte. No a pak chvilku scrollujte pro správnou odpověď.
Jestli jste si mysleli, že kód vrátí „ABCDEFGH“, vězte, že tomu tak není.
Kód nevrátí nic. Vůbec nic. Dokonce i když ten parametr jen vypíšete (bez jakýchkoliv úprav), nevrátí prostě NIC. Ani neskončí chybou. Vypadá to, jako kdyby PowerShell vyhodnotil, že něco takového nestojí za zpracování.
A proč? Dávejte si pozor, aby se parametry ve vašich funkcích nejmenovaly Input. Je to automatická proměnná. Detaily zde: https://docs.microsoft.com/en-us/previous-versions//dd347675(v=technet.10)?redirectedfrom=MSDN
Tzn. stačí parametr přejmenovat a už to funguje. On se ten parametr stejně měl jmenovat nějak líp, takže dobře mi tak.