Ist Objective-C pass-by-value oder pass-by-reference?

8

Da wir immer Zeiger verwenden, um Variablen zu definieren, habe ich mich gefragt, ob Objective-C "pass by value" ist, da wie bei Java der tatsächliche Wert unter Verwendung seiner Referenz übergeben würde.

Da es jedoch auf C aufgebaut zu sein scheint, hätte es dann die gesamte Funktionalität von C?

    
gran_profaci 06.03.2014, 01:44
quelle

2 Antworten

17

C unterstützt pass-by-reference und Objective-C nicht, da es sich um eine strikte Obermenge von C handelt.

In C (und Objective-C) können Sie pass-by-reference durch Übergeben eines Zeigers simulieren, aber es ist wichtig, sich daran zu erinnern, dass Sie technisch immer noch einen Wert übergeben, der zufällig ist a der Wert eines Zeigers.

Also gibt es in Objective-C (und C, in der Sache) kein Referenzkonzept, wie es in anderen Sprachen (wie C ++ oder Java) beabsichtigt ist.

Das kann verwirrend sein, also lass mich versuchen, klarer zu sein (ich werde einfaches C verwenden, aber - wieder - es ändert sich nicht in Objective-C)

%Vor%

Auf der anderen Seite könnten wir in C ++

machen %Vor%     
Gabriele Petronella 06.03.2014, 01:48
quelle
0

Es ist eine strenge Obermenge von C. Es tut dasselbe wie C. Es ist ein Grund, dass alle Objekte tatsächlich Zeiger auf Strukturen sind.

    
uchuugaka 16.03.2014 21:59
quelle