Oto skrypt PowerShell:PowerShell jest ignorowanie wypowiedzi po wywołaniu funkcji
function PickANumber()
{
12
}
function GetTheAnswer()
{
PickANumber + 30
}
$answer = GetTheAnswer
write-output "The answer is $answer"
Wyjście z tego skryptu jest:
The answer is 12
O ile mi zadzwonić przypuszczenie, dzieje się tak dlatego wywołania funkcji PowerShell nie ma nawiasów wokół argumentów lub przecinków między nimi, więc PickANumber + 30
jest analizowany jako coś takiego jak PickANumber('+', 1)
zamiast PickANumber() + 1
. I to nie jest błąd, nieużywane argumenty są po prostu ignorowane (jak w przypadku JavaScript).
Jeśli go zmienić nieznacznie, to odpowiedź brzmi 42:
function GetTheAnswer()
{
$a = PickANumber
$a + 30
}
Ale na pewno nie jest sposobem na osiągnięcie tego w jednej linii?
Zamieszczam tutaj, ponieważ będzie to kąsać kogoś innego.
Świetnie, powoduje to, że nieprawidłowy kod powoduje błąd. Teraz połącz się z drugą odpowiedzią "(PickANumber) + 30" dla naprawienia podanego błędu. – Anthony