2017-12-07 4 views
-5

1 Was return; bedeutet? Wenn p<0 was nicht gibt diese Set-Methode mich zurück?Was bedeutet diese Rückkehr

-(void)setSomething:(int)p{ 
    if (p<0) 
     return; 
    _p=p 
} 

2 Und was ist der Unterschied?

-(void)setSomething:(int)p{ 
    if (p>=0){ 
     _p=p 
    }else{ 
     return; 
    } 
} 

3 Wenn ich die else-Anweisung oben, was weglassen passiert?

Antwort

1

Sie haben drei Möglichkeiten, eine Funktion zu schreiben, die die gleiche Sache effektiv tun werden. Sie sind alle Zuordnung _p mit dem Wert von p, wenn der Wert von p nicht negativ ist.

  1. (void) in Ihrer Funktion sagt, dass es nichts geht zurück ist. Deshalb ist die return; nichts tut, von der Funktion, sondern verlassen.

  2. & 3. Für eine Funktion mit dem Rückgabetyp void benötigen Sie keine explizite Rückgabeanweisung am Ende des Funktionskörpers.

dh.

-(void)setSomething:(int)p{ 
    <code> 
    return; 
} 

und

-(void)setSomething:(int)p{ 
    <code> 
} 

sind effektiv gleich.

Es gibt keine andere Linien, die in sonst Fall von 2. nach der return-Anweisung ausgeführt werden, auch wenn Sie den anderen Block oder nicht haben, wird das Programm von der Funktion dort verlassen.