Question Retourner plusieurs valeurs dans une fonction

Plus d'informations
il y a 10 ans 10 mois #19718 par Philippe
salut Laurent

désolé j'ai un peu perturbé tes réponses

ton explication est plus clair<br><br>Message édité par: 6ratgus, à: 15/05/15 12:01

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19719 par Laurent Dardenne
6ratgus écrit:

contrairement à powershell v4 peut etre v3, en v2 dans une fonction l'appel d'une fonction qui renvoie une valeur perturbe le return !

Non, c'est un comportement par défaut, peut importe la version.
L'usage de l'instruction Return documente le code et évite qu'un débutant ne connaissant pas ce comportement soit dérouté lors de la relecture. Elle balise l'intention.

Return émet son résultat (1 ou + valeurs) dans le pipeline, et il n'y a qu' un pipeline exécuté à la fois dans un runspace (session PS).<br><br>Message édité par: Laurent Dardenne, à: 15/05/15 12:16

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19720 par Laurent Dardenne
Salut 6ratgus,
6ratgus écrit:

désolé j'ai un peu perturbé tes réponses

Pas de soucis :)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19721 par Philippe
par contre il y a un comportement diffèrent entre la v2 et la v4 sur les valeurs $null renvoyer !?

bon après quelques tests, j'ai pas de comportement différent. :whistle: vivement les vacances<br><br>Message édité par: 6ratgus, à: 15/05/15 12:29

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19722 par Laurent Dardenne
6ratgus écrit:

par contre il y a un comportement diffèrent entre la v2 et la v4 sur les valeurs $null renvoyer !?

Non pas à ma connaissance. C'est surtout la v3 qui comporte des breaking change.

Ici j'ai testé avec la v4 :)
Par contre ceci se comporte différemment depuis la v3 :
[code:1]foreach ($O in $null) {$o.gettype()}[/code:1]
Et c'est l'itération qui est modifié, pas le principe du pipeline.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19723 par Philippe
Au secours Laurent :

6ratgus écrit:

par contre il y a un comportement diffèrent entre la v2 et la v4 sur les valeurs $null renvoyer !?

Non pas à ma connaissance. C'est surtout la v3 qui comporte des breaking change.


j'ai cru avoir mal vu ou ne pas avoir compris ce que je testé,
mais voila, les deux tests suivant donne pas les mêmes résultats en v4 et ont les mêmes réponses en v2 :evil:

[code:1]
###### Test 1 ######################################

function test1() {
return $null, $false
}
\&quot;test 1\&quot;
$Result = test1

\&quot;$($Result.count) valeur renvoyé\&quot;
\&quot;la premiere valeur est null ? : $($Result[0] -match $null)\&quot;
\&quot;la deuxieme valeur est false ? : $($Result[1])\&quot;

# résultat
test 1
2 valeur renvoyé
la premiere valeur est null ? : True
la deuxieme valeur est false ? : False

###### Test 2 ######################################

function test2() {
$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.CreateNoWindow = $true
$process.StartInfo.UseShellExecute = $true
$process.StartInfo.FileName = \&quot;ping.exe\&quot;
$process.StartInfo.WorkingDirectory = \&quot;C:\windows\System32\&quot;
$process.StartInfo.Arguments = \&quot;-n 1 www.free.fr\&quot;
$r = $process.Start() | Out-Null
$timer = $process.WaitForExit()
return $timer, $false
}
\&quot;test 2\&quot;
$timer = $null
$Result = test2

\&quot;$($Result.count) valeurs renvoyés\&quot;
\&quot;la premiere valeur est null ? : $($Result[0] -match $null)\&quot;
\&quot;la deuxieme valeur est false ? : $($Result[1])\&quot;

# résultat
1 valeurs renvoyés
la premiere valeur est null ? : True
la deuxieme valeur est false ? :
[/code:1]

en v4 sur le deuxieme test (fonction test2) la valeur renvoyé n'a aucune valeur même pas null, un $Result[1] -match $null ne me renvoie rien ?? :blink: :silly:

alors qu'en v2 j'ai bien les valeurs true et false qui s'ont renvoyés dans les deux cas !! :) :evil:

je crois que je vais arrêté l'informatique ! ;)<br><br>Message édité par: 6ratgus, à: 15/05/15 15:18

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.108 secondes
Propulsé par Kunena