Nell'obiettivo C, quali parole inglesi posso associare concettualmente ai simboli?

3

Sto imparando l'obiettivo C (da uno sfondo in C #) e sto avendo difficoltà a comprendere le firme insolite del metodo e sto cercando una scorciatoia per rendere la curva di apprendimento meno ripida.

  • Durante la lettura del codice Objective C, quali parole o frasi inglesi posso associare ai simboli?

Ad esempio, chiamare un metodo ha il seguente aspetto:

  @implementation Calculator

  -(int) add:(int)a and:(int)b {
  }
  @end

Vorrei scrivere questo codice:

Calculator *calculator = [[Calculator alloc] init]];
int sum = [calculator add:10 and:20];

Finora nel mio foglio di istruzioni ho scritto: "[" means "do" . Quali altre associazioni di parole ci sono per i simboli nell'Obiettivo C?

    
posta random65537 21.08.2013 - 15:32
fonte

3 risposte

2

So far in my learning cheat sheet I wrote: "[" means "do"

Non ci penserei in questo modo. Invece, prova a ricordare che una chiamata al metodo ha il seguente aspetto:

[target message]

Le parentesi racchiudono una coppia in cui il primo elemento è l'oggetto a cui stai inviando il messaggio, e il secondo è il messaggio che stai inviando. Non ci vuole più tempo per abituarsi alle parentesi usate in questo modo piuttosto che sapere che { e } racchiudono un gruppo di istruzioni in linguaggi simili a C. Se provi a tradurre le parentesi in altri significati, potresti rendere l'intera idea più complicata. Se hai bisogno di un modo per "dire" le parentesi mentre le leggi, pensa a loro come "start method call" e "end method call".

Per quanto riguarda i messaggi stessi, può aiutare a ricordare che il nome di un metodo include tutte le sue parti. Nel tuo esempio, il metodo è:

add:and:

So che è sorprendente che i parametri siano inseriti tra le parti del nome del metodo, ma una volta superata la sorpresa scoprirai che è molto bello usare il nome del metodo per ricordare quale parametro è quale.

    
risposta data 21.08.2013 - 15:41
fonte
2

Non vorrei provare ad equipararlo a qualcosa in inglese. Senza leggere le parentesi puoi leggerlo in inglese semplice: Calcolatrice aggiungi 10 e 20. [] vengono utilizzati per il contenimento / il raggruppamento.

Esempio di base:

Per prima cosa dovrei iniziare traducendo la sintassi in un linguaggio di programmazione che già conosci.

E per prima cosa inizierò imparando un esempio senza parametri con nome :

[calculator reset]; significa: calculator.reset();

Nesting:

[[container calculatorInstance] reset]]; significa container.calculatorInstance().reset();

Quindi il primo elemento dopo [ è un oggetto (o classe). Dopo lo spazio viene chiamato un metodo sull'oggetto (o classe).

Quindi una serie di parentesi [] potrebbe essere considerata come oggetto.metodo () e se si dovesse prendere quel valore e chiamare un metodo su di esso si avrebbe un set esterno di [] .

[[something returnAValue] actOnThatValue];

è uguale a

something.returnAValue().actOnThatValue();
    
risposta data 21.08.2013 - 15:46
fonte
1

Non particolarmente fluente in Objective-C, ma [calculator add:10 and:20]; significa tanto quanto "invia un messaggio alla calcolatrice per aggiungere 10 e 20".
Da quello che ricordo Objective-C sottolinea che una chiamata al metodo è in realtà l'invio di un messaggio a un oggetto, a volte con un payload (gli argomenti di una chiamata al metodo), che è un po 'diverso da come ci si potrebbe pensare in C #.

    
risposta data 21.08.2013 - 15:44
fonte

Leggi altre domande sui tag