
okay cominciamo ciao a tutti
buongiorno spero che tutti si siano divertiti
sorprendente keynote prima il mio nome è Mark
perdomo e io sono un iOS indipendente
sviluppatore che ho sviluppato per iOS
da quando è stato aperto l’app store
indietro nel 2008 e prima di quello che sono stato
programmazione obiettivo-c per molto tempo
il tempo per quello era Java e lo sono stato
scrivere il codice per circa 30 anni, quindi ho
andato in giro così oggi ho intenzione di parlare
probabilmente avete sentito parlare di Swift
Swift come nuovo linguaggio di programmazione
sviluppato presso Apple è stato progettato per
alla fine lentamente sostituire l’obiettivo-c
ed è stato rilasciato a giugno per
la prima beta e solo una settimana e una
Mezzo fa è stato finalmente rilasciato al
pubblico in generale dove non è necessario
essere uno sviluppatore di Apple per iniziare
per iniziare a usarlo così è
disponibile gratuitamente per chiunque a
scaricare dall’app store mac e
questa sarà una panoramica del
linguaggio quindi inizieremo con alcuni
Dai un’occhiata veloce ad alcune FP e poi siamo
andando a fare qualche tweet e qualche hof e
allora stiamo andando a bork e spero di te
quelli che seguono e poi me ne vado
lasciare un po ‘di tempo per
domande mi piace lasciare una buona quantità
di imbottitura per domande quindi se lo fai
avere domande durante il discorso che faccio
incoraggiarti a inserirli per favore
vai all’app sul tuo dispositivo iOS o via
il vostro android e poi alla fine saranno i
ruotali tutti insieme e, si spera
siamo in grado di poter coprire un bel po ‘di loro
va bene così in flash bowl chi sente a
programmatore che sente programmi computer
ognuno di voi che è qui
programmatore di obiettivi-c Wow probabilmente
circa la metà di chi è un c-sharp
programmatore circa la metà e Java C ++ C
Haskell sì, mi piace diminuire il
rendimenti decrescenti va bene, questo è tutto
praticamente previsto, quindi iniziamo
con un tweet e ora sono piuttosto vecchio se
nella programmazione dei computer per un po ‘e
ammetto che non capisco veramente cosa
questo ciò che questa roba da tweet è solo te
sapere in qualche modo era totalmente diverso da
il twerk perché questo richiede un
Snapchat
mi confonde molto ma ho pensato
sai che sto imparando cose nuove che farò
saltare dentro e cercherò di imparare su questo
questo tweet e sembra piuttosto popolare
qui perché sembra che tutti
andando e la loro bicicletta a 40
miglia all’ora lo fa con il loro
testa in giù senza indossare un casco così
sembra essere di gran moda in questo in questo
città in questo paese così allo stampo e
sai che tipo di tocco aggiunto è giusto
questa intervista attiva vede così la metà di
tu che parli oggettivo-c riconosci
questa e l’ altra metà probabilmente
non c’è bisogno di capire cosa sia
soffitto perché probabilmente non lo farai mai
scrivilo ma hai capito di averlo
hai la tua interfaccia normale e hai
la tua implementazione vanno in modo diverso
file e hai bisogno di conservare quei file
sincronizzando te stesso c’è molto poco
aiuto e tu ce l’hai
e commerciale e hai qualche quadrato
parentesi ed è fondamentalmente un po ‘un
piccolo modello di come potresti fare un tweet
quindi hai questa interfaccia tweet e questo
tiene il nome utente in un corpo e poi giù
lì hai un servizio di tweeter e il
tweeter service tweeter il tuo tweet
e ha un singleton ed ecco a
piccola dimostrazione di come la usi così è
obiettivo-c può congratularmi con tutti
le persone che non l’hanno mai imparato
prima di ora sai tutto quello che devi sapere
ed è un tipo di meh è um the
il linguaggio si è evoluto per un quarto di a
secolo molto molto lentamente e ha una sorta di
rimossi dal contatto con alcuni dei
tendenze in lingue moderne: ecco
quello stesso lo stesso codice in Swift spero
voi tutti ottenuto che ormai tutti sapete Swift
quindi questa non è un’introduzione completa
alla lingua Swift che non stiamo andando a
impantanarsi due in sintassi e
dettagli e come esattamente si fanno le cose
questo è più parlare di come Swift può
cambia alcuni dei modi che decidi
per comporre e scrivere le tue app o le tue
conosci il tuo software come i tuoi servizi
per iniziare pensiamo a ciò che è
lo stesso in Swift come un obiettivo-c
Swift ha classi proprio come l’obiettivo-c
non sta uscendo dal
il paradigma orientato agli oggetti è considerato a
il linguaggio multi-paradigma ha metodi su
quelle classi ha protocolli che tu
sapere vedere un c-sharp e altre persone
preferisco le sue interfacce come estensioni
quali sono
che non hanno una buona analogia con un’altra
il linguaggio ha lo sai come chiamano
funziona come metodo attivo sulle classi
ha un po ‘di memoria automatica
gestione non ha spazzatura completa
collezione ma ha lo stesso
sorta di progressi nella gestione della memoria
usando quello che viene chiamato riferimento automatico
contando e poi ha chiusure che
un’obiezione vedi che siamo conosciuti come blocchi
quindi tutto questo niente di questo è nuovo
è fondamentalmente un uno-a-uno
traduzione dall’esistente
set di strumenti obiettivo-c che tutto ciò
metà di voi lo sa e probabilmente un po ‘
meno amore quindi ecco alcuni piccoli
aggiunte a cui Swift porta
obiettivo-c hai queste nuove cose
le strutture delle strutture chiamate sono simili
classi ma sono diversi sono
tipi di valore possiamo discutere il
implicazioni di ciò in un po ‘e
hai spazi dei nomi, finalmente non lo fai
devono essere come cavernicoli e prefisso o
classi con un paio di lettere maiuscole
lettere che speri rimarranno uniche
nel corso della storia e non in conflitto con
qualsiasi altra cosa e tu hai
costanti hai una costante mutabile
che aiuta a lavorare con alcuni
struttura dei dati immutabile che ti programma
il sovraccarico dell’operatore è stato a
alcuni di voi di C ++ sono sicuro che metà di voi
lo odio e lo hai amato e poi
hai interoperabilità con Objective
C quindi se viene eseguito nello stesso runtime di
obiettivo c quindi non funziona su a
macchina virtuale o e ne conosci qualcuno
sorta di livello di emulazione in esecuzione
lo stesso spazio di processo del tuo esistente
app che ti permettono di fare una volta a
senza problemi ma ti permette di
interagire con il tuo esistente con
il tuo codice iOS esistente così puoi
incrementale e adotta Swift nel tempo e
poi ci sono le grandi aggiunte lì
cose che fondamentalmente non esistono affatto
nell’obiettivo C o ne conosci altre
lingue e queste sono le cose che
che porta davvero in tavola
termini su come iniziare a iniziare
pensando in modo diverso a come scrivi
il tuo diritto il tuo software così ha
le enumerazioni e le enumerazioni non lo sono
solo regolari enumerazioni sono molto
potente sai il tipo di metodi su
loro e tipo di oggetti associati
che abbinato a un molto sofisticato
consente la specifica di corrispondenza del modello
tu ne fai alcuni molto interessanti
le cose che hai opzionale Swift è molto
pesantemente molto pesantemente inclinato verso
provando a
incoraggiarti a non avere valori nulli nel tuo
codice più quelli di voi che hanno mai
sperimentato un NullPointerException I
Non so se qualcuno abbia avuto molto
di nessuna eccezione puntatore e sono
raramente divertente o previsto e in un modo
intorno a quello è di non avere non null
abilità e così è davvero incoraggia che
e ti costringe a dichiarare esplicitamente
le tue proprietà sono state credulone
i generici tutti voi vedete programmatori taglienti
conoscilo e amalo ed è fantastico
Oltre al linguaggio è davvero
ti permette di stringere davvero il tuo
codice e so davvero cosa sta succedendo no
più hai un array NS dove
spero che tiri tutte le corde ma forse
ci sono alcuni istanti là e quello è
il divertimento ha di nuovo inferenza di tipo automatica C
persone affini hanno familiarità con questo ha
un sacco di supporto integrato per la mutevolezza
lungo le linee delle strutture ha due poli
che sono un po ‘come strutturare una luce
guarderemo quelli per un secondo e questo
ha funzioni di prima classe e
le funzioni di prima classe sono un’altra cosa
Mi concentrerò su oggi
perché per le funzioni di classe sono le
cosa che ti permette di adottare davvero
alcuni dei paradigmi più funzionali in
il tuo sviluppo, quindi ho ventilato su questo
ma guardiamo molto velocemente a questo
bit di codice swift che è l’equivalente
del servizio obiettivo-c che io
ha scritto prima che scrive il tweet
quindi hai colpito questo è un tweet
per ora si può pensare di una struttura come
classe questo è solo tenendo alcuni dati
questo contiene un nome utente e un corpo per
il tweet che VAR significa che può essere
cambiato il let, significa che è mutabile a sinistra
lo crei e poi hai il mio tweeter
servizio quindi non sei abituato a twittare il
tweet hai una funzione che richiede un
parametro chiamato tweet e cioè a
scrivi tweet e poi c’è un po ‘di magia
quello succede in quell’impianto e
poi c’è un singleton qui lo sai
puoi ottenere il tuo singolo servizio tweeter
e poi ecco un piccolo esempio di come
potresti farlo tu creerai il tuo
servizio tweeter ti verrà condiviso
servizio e fai il tuo messaggio e tu
spedisci il tuo tweet e sono molto carino
quindi noterai qualche altra cosa o no
punto e virgola si conosce il prefisso
stringhe con la e commerciale c’è il
frecce ascii o denotando i tipi di ritorno
in genere il tipo segue il nome
a differenza di dire in Java dove il nome dove
il tipo precede sempre il nome
e sì, intendo che probabilmente puoi immaginarlo
in pratica tutte queste cose dando un’occhiata
a questo sai come dico che puoi imballare il
lingua in quasi nessun tempo, quindi facciamolo
pensa al nostro servizio tweeter e
pensiamo che sai, pensiamo
su come potremmo migliorare su di esso e uno
delle cose che notiamo è che c’è
nessun modo per avere alcuna indicazione di se
il tweet è riuscito o fallito perché io
Immagino che questi escano su internet e
quindi a volte le cose possono andare storte
che non è completamente robusto, quindi noi
ho bisogno di capire come farlo in modo che abbiamo
ottenuto questa funzione restituisce questa funzione
vuoto perché non ha feedback e così
lo sai che lo sono, lo sai che è un cs01
studente e ho deciso che avrò solo un
ritorno di booleano lo dirò oh
okay, lo sai tornerà vero se
il tweet è riuscito nel pre fallito
e poi hai quella corsa nella tua
sul tuo thread principale sulla tua app e loro
clicca il pulsante tweet e il tutto
la cosa si blocca e devi iniziare
pensando di sapere che c’è forse un po ‘
più complessità a questo problema tu
in genere non voglio usare sai
metodi sincroni quando lavori
con cose che potrebbero essere lente e
imprevedibile come il traffico di rete così
sai che pensiamo un po ‘di te
sapere come potremmo andare a fare questo
e sai c-sharp che probabilmente usi
alcuni dei migliori servizi di sincronizzazione e
obiettivi vedi che avresti usato il
delicato Pat pessimo vecchi tempi e delegato
il modello è fondamentalmente hai questo
protocollo che è come un’interfaccia e
questo è varie richiamate lungo il
protocollo che verrà invocato come
varie cose accadono proprio ora, noi solo
ne hai uno che sai ritornare
indipendentemente dal fatto che il tweet abbia avuto successo
e poi sul servizio che disegni a
delegare ad esso e poi lo tweet
e poi quel delegato sarebbe stato chiamato
indietro e sapresti se era un
se ha funzionato o meno e poi tu
può decidere che cosa si vuole fare con
l’utente vuoi che tu lo sappia
loro sanno se lo sai se lo vogliono
riprovare o se vogliono rinunciare
o qualcosa e tu puoi fare esattamente il
stessa cosa e Swift e lo farai
adotta questi modelli in qualsiasi lingua tu
puoi avere un set di delegati
metodi un set di richiamata che si è concluso
essere chiamato così sai che puoi farcela
può fare tutto questo ma sai incontrarti
negli ultimi anni tutto il mainstream
le lingue sono diventate funzionali
caratteristiche allegate a loro
in te lo sai che Java è lambda
obiettivo-c è un blocco in C
chiusure taglienti ma sono tutte
fondamentalmente lo stesso sono tutti a
blocco differito di esecuzione del codice e
sono molto utili per cose speciali
come servizi asincroni ma anche in
la suddivisione del tuo codice in modulare
pezzi e questo è funzionale
programmazione essenzialmente funzionale
la programmazione è uno stile di programmazione
non è un insieme di requisiti rigorosi
ci sono linguaggi funzionali che hanno
un insieme di requisiti rigorosi che molto
un po ‘a seconda di quale accademico
persona accademica con cui stai parlando ma
uno dei prerequisiti principali di a
linguaggio di programmazione funzionale è quello
le funzioni sono prima di tutto oggetti di prima classe
oggetti di classe significa che sono alla pari
con il tuo in negozio alla pari con il tuo
corde o in parte con la tua abitudine
classi possono essere passati intorno a loro
possono essere possono essere conosciuti manipolati
possono restituire altre funzioni e
cose del genere così come ho detto è un
stile in modo da sapere che non si direbbe spazzato
al linguaggio di programmazione funzionale
ma diresti che permette quasi
ti incoraggia ad adottare un funzionale
stile per come fai le cose, quindi facciamolo
una cosa molto semplice che probabilmente molti
di voi avreste immediatamente saputo
pensato di fare che è quello che lascia il nostro
il servizio tweeter accetta invece un blocco a
chiusura che verrà invocata una volta il
una volta che il tweet è completo, quindi in questo
caso la sintassi per una chiusura è quella
è una funzione che accetta un singolo
parametrizza un tipo booleano e poi in
questo caso o diventa vuoto così CI così ecco
un esempio di come questo potrebbe essere usato
hai il tuo servizio di tweeter e ora
hai annullato il tuo nuovo booleano
parametro di funzione per il tweet e
allora hai questa funzione fatta e
questa è una variabile come qualsiasi altra
variabile e questo è di tipo questo è giusto
un singolo parametro di tipo restituisce booleani
vuoto e poi qui stiamo firmando il
variabile è qualcosa di successo nel tuo
nominando questo parametro e io credo in
c-sharp si usa 0 uguale a una freccia che
è meglio la sintassi ma hanno scelto in e
allora e poi noi sappiamo qualcosa
qui conosci successo e fallito e
quindi inviamo il tweet
quindi puoi sapere accorciare questo è un
molti di c’è un sacco di meccanismi per
compattare alcune delle cose che fai
hanno un sacco di utile stenografia qui
stai facendo la stessa cosa che sei
attaccandolo in linea nel
invocazione del servizio e poi qui
il tuo EV ancora più compatto se il tuo ultimo
il parametro di una funzione è a sua volta a
chiusura quindi non si può dichiarare
fuori linea quasi come se fossimo un flusso
dichiarazione di controllo quindi a in aggiunta a voi
non devi nominare i tuoi parametri
può semplicemente usare questo dollaro zero che è
consente il primo tipo di inferenza del parametro
sai cosa sarà quello
booleano e poi qui usiamo solo a
Turner ex recente, quindi questo è fondamentalmente
facendo la stessa cosa che stai mandando
un tweet e basta stampare se
o meno loro se ha successo o meno
o fallisce e questo è un ordine superiore
funzione tuttavia la funzione è semplicemente a
funzione che prende altre funzioni uguali
sai in buona funzione intraductale c
che tranne per bloccare quello che è assunto o
funzione se hai un metodo c-sharp
che accetta una chiusura quindi è a
funzione di ordine superiore in modo funzionale
lo stile di programmazione riguarda la composizione
funzioni e strutture trasformanti in
per compiere un compito pensiamo
di alcuni dei più popolari di alto livello
funzioni di cui spesso parlano le persone
soprattutto nel mondo funzionale e
questi sono filtri di mappa e riducono quello
tutti tutti sanno e amano nel
mondo funzionale non è molto non lo è
ma molto comunemente usato almeno in
il mondo dello sviluppo dell’obiettivo e
questi sono suoni un po ‘a
highfalutin e astratto all’inizio ma
tutto ciò che in realtà sono estremamente semplici
potresti scrivere ciascuna di queste funzioni
implementazioni in voi sanno che non è così
sono meno linee di codice almeno vedere la mappa
nel filtro una mappa richiede
un sacco di cose e lo trasforma in un
numero equivalente di un gruppo di altri
roba così ci vogliono dieci cose in termini di
un altro filtro per altre cose richiede un sacco di
cose come dieci cose e lo trasforma
in 10 o meno cose ma sono uguali
gentile e quindi ridurre il tipo di patti
giù tutti gli oggetti in una sola cosa
in alcune consuetudini
modo personalizzabile quindi è un po ‘
astratto quindi pensiamo a a
voglio dire che abbiamo scritto questo
servizio Twitter davvero robusto questo uh
conosci il livello del modello e questo livello API
quindi in realtà sto imparando molto su come
Twitter funziona e cosa puoi fare con
così penso che potrebbe effettivamente scrivere un
app ti farà sapere che qui twitter è un
ottima piattaforma per terze parti
sviluppatori per sviluppare così vado
al ho intenzione di scrivere il mio Twitter
cliente e sto andando e ho intenzione di
spedirlo sull’app store e lo sarà
sarà molto bello quindi vado a
sii in posizione specifica a cui sto andando
bersaglio il pubblico danese così ho
il mio gruppo di beta tester e io ho
una delle macchie più famose là fuori
sul nome di internet è Hamlet and and
estrai la mia app e lui è a sai
scrivendo per parafrasare con alcuni dei suoi
cose più famose che sta inviando
tweet tweet tweets e poi sai se
Funziona forse lo sarà e forse se lo fosse
non funziona forse dice di non essere ma
ma questa è la domanda per un altro giorno
così oh sai che è in grado di farlo
fai questo tanto sai tutto il giorno tutti i giorni
twittare un sacco di altre cose e lui
vuole espandere quella beta tech a a
così poco a no ad alcuni dei suoi amici
possiamo ottenere una seconda linea di destino di
testiamo così andiamo dal suo ottimo amico
Polonio e Polonio non sono noti per
essendo molto sintetico nelle sue parole e tu
sappi che sta mandando a cercare di farlo
inviare un messaggio diretto tweet al suo
figlio Laertes che sta per partire
La Francia e ha un sacco di grandi cose
un consiglio che probabilmente hai sentito
come né un mutuatario né un creditore essere
e non vedo perché questo non funzionerà
ma sai che sono abbastanza nuovo su Twitter
e poi questo accade così si scopre
che Twitter ti limita a fare 140
caratteri per i messaggi che invii
su internet che è ciò che è
tipo di noci per me perché ho pensato il
internet stava diventando più veloce e basta
più basso e cose del genere ma tu sai
è un processo che dobbiamo fare
il lavoro era così ora sto pensando che forse
Farò un po ‘di freddo, farò qualche locale
compressione specifica di tweet e invio
li mandiamo fuori a due
dimensioni ridotte rispetto a quelle originariamente
composto in modo che io non conosca veramente un
Danese, ma gli americani sono conosciuti e lontani
ampio per avere una grande capacità di apprendimento
e inizi a parlare altre lingue e io
conosci un po ‘di svedese perché
quando stavo crescendo ci siamo divertiti molto
serie di programmi educativi di a
gentiluomo che insegnerebbe entrambi i
Lingua svedese e cucina svedese lui
era una fantastica risorsa fantastica
ci sono svedesi nel pubblico giusto
ora mi viene detto su wikipedia che spremere
stanco della gente americana
avvicinandoci allo Chef svedese
ma è un personaggio molto amato nel nostro
nella nostra società in modo da conoscere uno dei
cose principali che impari dal
Lo chef svedese è la maggior parte delle parole in
Svedese sono in realtà una sola parola
solo Bork dice che il bork bork bork quando lui
inizia il processo che dice bork bork
bork alla fine quando qualcosa va
sbagliato e, e questo mi ha dato un’idea
sembra che probabilmente potrebbe ridurre
tutto fino a lavorare ora non sono stupido
So che lo svedese è completamente diverso
lingua e danese quindi sai che ho fatto un
un po ‘di ricerca e ho scoperto
questa è una traduzione abbastanza vicina
equivalente quindi abbiamo maiale così armato
con quella laurea che ho trascorso come
metà della mia ricerca e sviluppo
budget per venire con noi quindi è un
è abbastanza buono e penso che potrei
prendi un brevetto quindi diamo un’occhiata ad alcuni
funzioni di ordine superiore con il lavoro così
abbiamo il nostro nostro tweet body e il
il corpo del tweet è saltato usa un messaggio lungo
e vogliamo vogliamo tradurre questo
usando il nostro nuovo algoritmo di traduzione così
la prima cosa che vogliamo fare è che vogliamo
per dividerlo in parole e noi facciamo a
scissione abbastanza ingenua di esso dove noi
Diciamo che c’è una funzione integrata e
Swift ha chiamato una divisione e ci vuole un
un sacco di cose non tutte le stringhe
non è necessario che tu lo sappia
tipo particolare basta prendere una cosa
e quindi hai una callback di chiusura
che accetta i singoli componenti
della cosa
quindi restituisce se dovrebbe o meno
essere considerato un separatore, quindi stiamo andando
per usarlo per segmentare
il corpo in individuo individuale
le parole più sinteticamente si possono dire
il dollaro 0 è uguale alla citazione di citazione perché
usando l’inferenza di tipo lo farà
sapere qual è il tipo è così bello
piuttosto fresco fino ad ora abbiamo un po ‘di
parole roba NLP abbastanza avanzata giusta
lì e ora vogliamo ridurlo
un po ‘perché nella mia ricerca io
scoperto che di solito sono più lunghe le parole
quelli importanti e si può solo un po ‘
rilasciare quelli più corti perché raramente
sono lì i fini e il fa
e cose del genere quindi stiamo andando a
filtrarlo verso il basso il filtro si sta riducendo
un elenco di cose in un elenco degli stessi
tipo di roba in meno uguale o meno roba
quindi qui stiamo dicendo filtro e tu
passare una parola parametro e il conteggio
elementi è fondamentalmente nei termini di
la stringa sta dicendo quanto è lunga quella stringa
e una parola più grande di 7 caratteri
stiamo andando a che andremo a controllare
e così questa serie di grandi parole sta per
sii la lista filtrata di parole che
ora ha sette o meno caratteri
ecco qui è la parte incredibile che siamo
faremo il
traduzione qui e stiamo andando
per farlo dicendo mappa e quale mappa
ci vuole una lista di un sacco di cose
e lo trasforma in una lista di un gruppo
di altre cose dello stesso tipo questo è
dove dici come Google la mia domanda
conosci una specie di dizionario e usalo
come la traduzione sensibile al contesto di
parole e cose del genere ma loro
non ho fatto il tipo di ricerca che io
fatto dove ho imparato che ogni parola
è in realtà Bork, quindi ho intenzione di mappare tutto
queste grandi parole in Borg e l’ ultimo
cosa è la funzione che le persone
a volte ne ho un po ‘di più
difficoltà con cui si riduce in questo
caso ridotta sta per essere solo
combinando tutto in un unico
stringa per me ma ridurre sostanzialmente tutto
lo fa è ci vuole un elenco di cose e
lo trasforma in una singola cosa che ha fatto
lo riduco così nella mia riduzione qui
nel è un po ‘piccolo ma um è
prendendo due corde
e li sta solo aggiungendo
puoi essere più sintetico dicendo il
la funzione combinata richiede $ 0 in più
dollaro uno diventa ancora più compatto
perché nelle funzioni rapide gli operatori sono
funzioni e così nel caso di a
operatore che accetta di conoscere un tipo
a sinistra e un tipo di destra
puoi semplicemente scambiarlo con una chiusura
che accetta quei due tipi di
parametri quindi quello che facciamo dopo siamo noi
componi la funzione come una serie di
operazioni quindi la prima cosa che facciamo è
portiamo tutto insieme lo dividiamo
in parole lo filtriamo se noi
filtrare tutte le parole grandi noi
traduci tutto in bork e quando
lo trasformiamo in una singola stringa e
allora in questo caso particolare siamo in grado
a sono stati in grado di inviare un tweet nel
numero accettabile di caratteri che abbiamo
125 personaggi e Polonio è in grado di
inviare un consiglio molto molto utile a
posare le nostre T sulla sua alla vigilia della sua
viaggio in Francia e questo è quello che è
sembra e sono sicuro che la posizione di RT sta andando
essere in grado di capirlo e di essere
in grado di fare un grande uso di tutto ciò
saggezza che suo padre sta mandando così
Sono ciò che intendo tutti qui ti conoscono
potrebbe fare esattamente lo stesso in qualsiasi altro
in qualsiasi altra lingua il non farlo
magia che non potevi fare altrove
quindi per esempio nell’obiettivo C ecco come
potresti eseguire la stessa operazione tu
passa attraverso la tua conoscenza per i singoli passaggi
hai un sacco di looping hai a
un po ‘di ramificazione che attraversi
e tu rompi la parola e le cose
così puoi farlo in un modo semplice
obiettivo c puoi renderlo un po ‘
più succinta se ne stai usando qualcuno di
le comodità che i programmatori di cacao
impara come se esistesse un meccanismo integrato
per dividere stringhe basate su a
separatore c’è un sai che puoi
passare un blocco a un filtro e puoi farlo tu
puoi ridurlo così puoi farlo
Obiettivo C o altra lingua ma
grande differenza è che puoi farlo molto
succinto e lo sai con un po ‘
di esperienza estremamente leggibile che puoi
guarda oltre e dì ok, cos’è questo?
cosa sta facendo
l’altra cosa che sta facendo è
che non vi è alcuna alterazione nello stato
ovunque qui non ne stai cambiando
strutture dati sottostanti che di solito
sei entrato in te non stai creando non lo sei
creando direttamente ogni singolo array
e quindi modificarli e sottrarli
da loro e e dover dover
scherza con lo stato quando eviti
dover creare e manipolare lo stato
rendi il tuo codice molto più semplice
finisci per scrivere meno codice e con
meno codice meno in realtà è più quando tu
avere meno codice hai meno bug di te
avere meno hai meno manutenzione
problemi è più facile da capire è a
molto è molto più succinto quindi
quando stai cercando di adottare
stili di programmazione funzionale uno dei
le cose che vuoi fare è che tu voglia
pensa a come posso scrivere meno codice
Come posso come posso fermare il loop come può
Smetto di ramificarmi come posso ridurre il mio
manipolazione dello stato che continua all’interno
il mio programma e lo troverai con una mappa
e ridurre e filtrare si può effettivamente
eliminare quasi ogni ciclo che si accende
nel tuo codice puoi davvero farlo
davvero un abbandono solo una tonnellata di
stendardo che potresti essere tu
potrebbe essere stato scritto sopra
gli anni così in generale questo tipo di
i paradigmi hanno funzionato in tutto il
lingue moderne specialmente alcune delle
più lingue sperimentali su cui gira
la JVM come sta facendo Scala c-sharp
cose incredibili con te lo sai
chiusure e cose del genere a tutti
sta ottenendo funzionalità funzionali ibride
lavorato nel loro oggetto orientato
le lingue e Swift non lo sono certamente
unico al riguardo ma ce n’è uno
è un po ‘unico in quanto è uno dei
prime nuove lingue progettate per simili
sviluppo di applicazioni industriali che ha
questi concetti sono stati costruiti in una sorta di forno
fin dall’inizio e ciò consente
adotti più fluentemente alcuni di questi
stili come te
quindi dovrei dire che non sono un pagato
Evidente evangelista Sono solo personale
appassionato il cui felice non deve
scrivere ogg-c molto più se
del tutto e ce ne sono alcuni che conosci
ci sono alcuni spigoli è marchio
nuovo e ci sono bug in particolare
bug con alcune delle integrazioni IDE
con l’esecuzione e cose del genere
in modo che possa renderlo un po ‘
ingombrante per alzarsi e correre con a
proprio all’inizio che si collega come me
menzionato prima che si esegue nello stesso
elaborare lo spazio come obiettivo-c e il
altre librerie di Coco e questo è un
risultato abbastanza eroico da parte loro
ma molte di queste librerie sono state
sviluppato nell’ultimo quarto di secolo
loro risalgono all’era del tuo sapere
il prossimo passo e tu sai tutto il tutto
oggetti prefissati con insiemi NS dal
i prossimi giorni di passaggio negli anni ’80 e oltre
è vecchio e provato e vero codice che è
ottenuto abbastanza a prova di proiettile nel corso degli anni
ma non è idiomaticamente simile a
Veloce saprai che potresti avere
notato in alcuni di quello di vedere i giudici
codice che hai un metodo molto lungo
nomi strani errori di script sul lato di
nomi di metodi concisi quindi alcune parti di quello
il collegamento può essere un po ‘macchinoso
lavorare con non c’è più dinamica
spedisci una delle cose che
le persone obiettivo-c spesso amano il
linguaggio che è estremamente obiettivo
è estremamente dinamico e tu passi
messaggi agli oggetti piuttosto che tu sai
invocare il metodo e tu puoi farlo
uso intensivo della digitazione delle anatre e quindi è possibile
avere un tipo di oggetto e tu puoi
solo una sorta di passare un messaggio che tu
non necessariamente sapere se lo farà
ricevere o meno e forse questo può essere un proxy
quel metodo da qualche altra parte che consente
un sacco di potere ma lo consente anche
cambia basso ed è un compromesso
Swift Swift ha davvero perso quasi tutto
di quello non puoi fare molti di questi
cose come con un errore sul lato di
arrivare ad avere una digitazione più forte
e meno tipi di cowboy che codificano con
alcune delle cose che puoi fare dentro
obiettivo-c e il maggiore
stanno arrivando proprio ora, secondo me è così
non c’è solo la gestione degli errori incorporata
non c’è nessuna gestione delle eccezioni
nemmeno davvero un documento migliore
pratiche per come dovresti gestire
errori e questo fa sì
affrontare le condizioni di errore molto di più
ingombrante soprattutto in termini di voi
sapere quando devi interagire
forse qualcun altro con biblioteche e
sempre più ti usciranno
bisogno di pensare a come stai andando
ponte il tuo meccanismo per la gestione degli errori
con il loro meccanismo io personalmente
prevedi che sai che lo farà
cambierà nel tempo ma a partire da ora
versione 1 punto 0 rilasciato una coppia
settimane fa non c’è un solido incorporato
gestione degli errori quindi è una specie di a
è una specie di difetto di Swift
in questo momento così con quello quelli sono quello che io
ritengo il linguaggio delle carenze e lo farei
come per ottenere a tutte le domande che le persone
potrebbe avere nel pubblico sia
ci sono domande inserite in attraverso
l’app va bene Swift ti risponderebbe carina
chiaramente ci sono vantaggi e svantaggi
ora c’è una tonnellata come se tu guardassi
allo stack overflow o qualcosa che c’è
forse 10 milioni di risposte
obiettivo-c e ci sono forse 10 risposte
su Swift quindi c’è un sacco di molto
un corpo più grande di te conosce l’esistente
saggezza dell’obiettivo-c e codice sorgente e
codice di esempio e cose del genere
lì, ma non credo che questo
supera quello che supera il
Benefici dell’apprendimento, quindi prima di tutto
sarà molto più facile da imparare se tu
sai già C sharp o qualcosa del genere
Swift vorrà dire che sarai sveglio e
correre in un giorno non è un complesso
cosa la parte complessa della costruzione di un
l’app non è una lingua, è tutto
user sei tu che conosci i framework che
si lavora con la piattaforma fornisce
Android ha tutto ciò che conosci massiccia
insieme di cose e sai che la rete ha il suo
tutto ciò che sai di tutti i suoi componenti e
come funzionano e come funzionano i quadri
quello e iOS ha il suo intero tutto suo
mondo dei componenti dell’interfaccia utente e
meccanismi per
sai trovare le tue posizioni
in quel modo quelle sono le parti difficili
di apprendimento e saranno i
esatta stessa curva di apprendimento
rapido o obiettivo c così io personalmente
pensa di sapere che la mela ha detto
questo è il futuro di aiutare il software
per dispositivi iOS e per mac e
e penso che in pratica significhi te
dovresti sbagliare dalla parte di
Swift va bene così la domanda è stata
possibile scrivere un’app per iOS interamente in
Swift uno e due come circa il
retrocompatibilità uno sì è
puoi sapere se apri Xcode
e tu crei o nuovo un nuovo progetto
il modello dirà qual è il tuo valore predefinito
lingua e puoi dire Swift e tutti
può essere una singola riga di codice nella tua app
può essere scritto in Swift che ho scritto
app come quella coppia e sì
quello che sai una cosa voglio segnalare
fuori però si sa citato
interoperabilità con l’obiettivo C voi
può anche nel tuo progetto mescolare e abbinare
Obiettivo C in modo da poter avere alcuni di voi
devo vedere le lezioni e ne hai un po ‘
Classe celere se vuoi quale è veramente
bello se vuoi iniziare a migrare un
progetto esistente quindi forse già tu
avere un progetto con un cacciatore o giù di lì
classi Objective-C si può solo cadere in
una sola lezione Swift e tu puoi e tu
può iniziare a lavorare con quello che ci sono
sai che ci sono sfumature del ponte
c’è qualcuno che conosci i costrutti Swift
che non corrispondono esattamente all’obiettivo-c
sai che ho detto che c’erano
le strutture strutturano cose che non possono essere
Lì Swift solo così il ponte torna a
obiettivo-c non può capire il tuo codice
se usa le structs ma se usi if
usa le classi e la sottoclasse da
nsobject che è il tipo di root-class
e il tuo obiettivo c allora puoi farlo
puoi avere un po ‘di continuità
l’interoperabilità tra i due il
altra parte della domanda è di cosa si tratta
compatibilità all’indietro il così doloroso cosa
funziona sapendo in modo nativo su iOS 8 lo fa
eseguire su iOS 7 non sono sicuro se io o 7 o 7
punto uno ma il meccanismo con cui esso
è così quando stai costruendo
e stai dicendo che voglio essere in grado di farlo
corri
a 7 o superiore ne raggruppa alcuni
delle librerie Swift direttamente nel tuo
app le tue app binario e quindi carica
questo in fase di runtime ed è in grado di
eseguirlo secondo le linee di
come alcuni di voi conoscono gli altri
quadri che consentono la multipiattaforma
fascio di sviluppo in tutto ciò che si sa
tutte le librerie di cui ha bisogno, così sarà
aumentare le dimensioni dell’app di un po ‘
ma a parte questo dovrebbe essere carina
senza soluzione di continuità c’è un’altra domanda
ce n’è uno dal pubblico giusto
giusto così quando ho detto che non ha
dispacciamento dinamico non ero completo
ha dispacciamento dinamico ma
cioè si tratta di un uccello dalla dalla
linguaggio così come funziona quando
stai collegando l’obiettivo C è quello
come ho detto obiettivo c tu hai te
conosci il metodo su una classe e quelli finiscono
essere chiamato essenzialmente per nome usando
una tabella di spedizione piuttosto che come una V
tabella che avresti e in C ++ o
molte altre lingue è professione
sottoclassi da nsobject swift sorta di
entra in modalità di spedizione dinamica dove
qualsiasi funzione che dichiari sul tuo
la classe verrà inviata per nome in modo che
l’obiettivo c in modo che il codice di adiacenza
lo chiamerò così
teoricamente potrebbe esserci un po ‘
un po ‘ di memoria e sovraccarico delle prestazioni
ad esso non ne ho osservato nessuno
differenza nel comportamento ma ma sì
fa una specie di spedizione dinamica
modalità quando si è in sottoclasse
obiettivo-c un po ‘in obiettivo-c
mondo con cui lavori
roba ma soprattutto è oscurata da te
e allo stesso modo conosci l’obiettivo-c
le librerie richiedono molto spesso
un certo grado di invio dinamico dal
codice client, ad esempio, hai azione
modelli di destinazione in cui si sta specificando
selettori per quello che succede come quando tu
tocca un pulsante l’unico meccanismo con cui
puoi dichiarare che è una stringa in
Swift che è una specie di fiasco ma ma
sì, quello lo usa lo stesso
selettore
kizim fa quello che risponde al tuo
domanda molto bene si si te
quindi sì, allora è la spedizione
si verificano quando si eredita da
nsobject ma non hai nessuno dei
conosci i modelli che le persone usano
come se avessi un documento d’identità, no
equivalente di un ID dove puoi semplicemente
sorta di passare qualsiasi messaggio ad esso o
qualcosa di simile a ciò che le persone
stanno usando molto quando stanno ottenendo
cose dentro e fuori dai contenitori che sono
usando facendo un uso massiccio della tipizzazione delle anatre
come serie NS e roba così così yeah II
era forse incompleto quando ho detto
non esiste un dispacciamento dinamico
ma non è non è proprio la parte di
il linguaggio che è quello
promossi ci sono come per lì
che um no, se sei familiare?
scusa la domanda è stata ce n’è per
derisione e test framework il test
il supporto in questo momento è fondamentalmente un sottile
porta del test Xcode esistente
quadri che non sono particolarmente
sofisticato se li hai mai usati
sono fondamentalmente se usi mai un’unità j
è essenzialmente una continuazione dell’unità j
così beffardo non è qualcosa che fa parte
della lingua o dello sviluppatore
supporto comunque uno dei sai
ci sono molti tipi di germogliamenti
Swift progetta progetti open source
lì e so che sono un paio di loro
sono concentrati su
adottando alcuni di questi più popolari
quadri testati che vedete come
in nodejs e scala e cose del genere
in Swift e alcune delle abilità di swift
sovraccaricare gli operatori ti dà il
capacità di creare un certo grado di
lingue specifiche del dominio dsl e uno
delle applicazioni popolari è quello
realizzazione di framework di test personalizzabili
e so che ci sono un paio di progetti
là fuori che posso cercare
voi pochi se mi contattate dopo
altri ci interrogano
tu
giusto così la domanda di base sì sì
la domanda di base era in obiettivo-c
sai come ho detto che c’è questo ID
questo tipo di ID è come un generale
tipo di oggetto che tipo di tipo di può essere
trattato come qualsiasi cosa, ma devi essere
attento perché se si invia un
selettore non riconosciuto a tutto il tuo
Arresto anomalo di Apple a meno che tu non maneggi
questo e così l’interrogante era
chiedendo come lavori con questi tipi
di oggetti quando fai il ponte
obiettivo-c così obiettivo-c non ha
generici quindi sai di avere un NS
allineare il loro oggetto elenco principale e
che non ha alcun meccanismo di
esprimendo il tipo hai solo un
mazzo di ID in un simile per
ndictionary a cui potrebbero riferirsi alcune persone
come una mappa o un hash hanno solo te
conosci Kizer die DS conforme almeno
copia e valori o ID e molto
di frequente quando si sta chiamando in
codice del cacao si torna in serie NS e
la traduzione in Swift è quella di te
non avere array NS di tipo alcun oggetto
che c’è un protocollo che è
fondamentalmente non dichiara nulla solo
dice che potrebbe essere qualsiasi oggetto non lo è
che bello affrontarlo di solito tu
solo che il modo rapido è quello di lanciare
e spero che non ce ne fossero
scocciata puoi correre come filtro su di essa
come stavo mostrando prima che tu possa dire
sai filtrare le cose in base a
se sei o no positivo
che è del tipo che ti aspetti
ma è uno dei tipi di kludgy
aree di interazione con le cose
fondamentalmente devo fare un po ‘di
lavoro extra per lanciare le cose ora alcuni di
la parte dell’API di bridging è quella
loro hanno scritto loro si sono ristretti
giù i tipi che restituisce e quindi io
pensa in quei tipi di spessori che loro
a volte fai da ponte a te
tornare come una serie di stringhe ma
la maggior parte di loro sono solo una serie di qualsiasi
oggetto però non è grandioso che mi aspetto
quello che saprai arrivando
anni che saranno affrontati un po ‘
meglio come sai allenarti
i nodi del ponte Oh, c’è ne
altre domande dal pubblico vanno bene
Sì, non va bene adesso c’è
qualcosa chiamato specchio e come potresti
aspettati specchi come rifletti sulle cose
e ottieni un po ‘di informazioni
fuori dallo specchio puoi ottenere un po ‘di tipo
informazioni e cose ma riflessione
il supporto al momento è abbastanza debole e
quello può essere intenzionale perché il
il linguaggio cerca di guidarti molto di più
in te sai un tipizzato staticamente
sapere forte fortemente tipo statico
conosci la direzione piuttosto che sai
riflettiamo su questa cosa e otteniamo
indietro sai capire cosa fare
in base a quali tipi i tipi mantengono ma
è un po ‘un po ‘
debole ma si, voglio dire tu puoi sapere se
ottieni modifiche in qualsiasi oggetto che puoi interrogare
che tipo di classe è e poi tu
puoi cambiare il tuo comportamento basandoti su quello
decidere come eseguire il cast in modo che la domanda sia
non è abbastanza maturo per il codice di produzione
sì, sto scrivendo tutte le mie nuove app
lavorando e scrivendo puramente in Swift
il tempo è runtime estremamente robusto
sapere come ho detto è in esecuzione su
runtime oggettivo-c ed è una specie di
vecchio e provato e vero con questo proprio nuovo
set di librerie di classi che conosci
le aree difficili sono davvero in fase di sviluppo
in questo momento, ma runtime trovo di essere
fondamentalmente è a prova di proiettile come sai come
il resto se stai sviluppando un
obiettivo c jo I Sono personalmente molto
felice con esso finora alla fine lì
sì, la domanda è su unità
test tipo di tornare a tornare a
la domanda lì prima non c’è
qualsiasi supporto integrato davvero grande per
l’unità di test xcode stesso ha un test
quadro che hai conosciuto in qualche modo
roba di segnalazione carina come quella, ma è così
non corrisponde alla sofisticazione
che hai adesso in altri
lingue rispetto all’unità
testare le librerie e il tipo noto
di nuovi modelli che puoi
applicare ad esso
ci sono alcuni buoni sai che è molto
nuovo c’è un bi yo c’è una rete di carico
rivista chiamata obj CIO che ironicamente
il loro ultimo numero era tutto su Swift
questa è una buona panoramica e
introduzione sai che ce ne sono pochi
github proietta là fuori, ma penso
il davvero ha davvero il definitivo
risorsa sono il WWDC quest’anno nel 2014
la mela ti ha dato una serie di discorsi
rapido e hanno dato tre davvero grandi
parla che sai iniziare veloce
intermedio rapido e avanzato rapido
e puoi guardare tutti quelli gratis
sul loro sito web e sono altamente
raccomandato che fondamentalmente tu sai andare
su di te la lingua da prima
principi indipendentemente dal fatto o meno
conosci bene l’ obiettivo
C e loro lo coprono davvero bene e
hanno alcuni esempi nella loro
sito web stanno pubblicando sempre di più
col passare del tempo ma ma sì quello è a
buona risorsa oh e mele una mela
libro pubblicato disponibile sia nel web
sulla loro pagina degli sviluppatori pure
come in iBooks chiamato il programma Swift
linguaggio e questo è fondamentalmente il tutto
manuale per il linguaggio di programmazione a
un po ‘più di lettura manuale ma ma
molto utile come riferimento più
domande a tutti ok ho circa cinque anni
più minuti quindi ho intenzione di fare molto
demo rapida di una delle grandi funzionalità
di Swift che è stato introdotto come un
grande risorsa di apprendimento e si chiama
il parco giochi che probabilmente ti aspetti
probabilmente sentito parlare di esso e così così
il parco giochi è una modalità speciale in Xcode
che è l’ID mele mele ed è un
risorsa davvero fantastica per inizialmente
imparare la lingua è essenzialmente a
poco appunti in cui si può solo
tipo di tipo ed è eseguito come te
come te
scrivilo se voglio scrivere il mio primo
programma rapido posso digitare 1 + 2 e il 3
e poi quello è un bello
cosa bella da fare e puoi fare
sia uguale alla stringa e quindi puoi vedere
sul lato destro che è una stringa
e puoi vedere che s 2 è uguale a s
un altro e puoi vedere che non ti piace
obiettivo c hai una nazione
automaticamente in quattro stringhe che è
davvero carino e puoi scrivere lezioni
e funzioni e cose del genere quindi io
può fare come una struttura questo è come io
in realtà ha scritto il quadro per il mio
Tweet Tweet App quindi posso dire di avere un
struct noi un tweet e tu puoi dirti
avere un VAR dice username è una stringa
e tu hai un corpo e questo è un altro
stringa e quindi è possibile costruire il
tweet oops tweet minuscolo dove abbiamo
ha Amleto e il corpo è parole di parole
parole mondi mondi mondi quindi questo è un
ricerca fantastica per risorsa beta per
fondamentalmente raccogliendo la lingua e
appena sorta di giocare con esso
senza dover andare in giro con
fare un intero nuovo progetto e un intero
sai a conoscere il progetto Xcode
gestione puoi conoscere l’esperimento
con te sai che le stringhe sono uguali a s
comma s due e hai un paio di a
un paio di stringhe e puoi stringere
quella mappa e tu passi dentro sai dire a
la parola in questa è la nostra piccola traduzione
cosa che abbiamo scritto e mentre tu scrivi
sapere le cose sul lato destro iniziare
diventare grigio fino a quando il compilatore non sarà di tipo
raggiunge il con ciò che sei
facendo anche se in questo caso penso di essere io
potrebbe aver superato il compilatore
oops stringa e poi si okay si sbaglia
puoi vedere i nostri messaggi così sai
termini di apprendimento delle lingue di
risorsa fantastica per solo per ottenere
installato e funzionante e sperimentando
la sintassi sta vedendo come alcuni di questo tipo
lavori di inferenza e cose del genere così
se ti basta scaricare xcode gratuitamente da
il Mac App Store puoi solo
iniziare subito facendo un lavoro
nuovo nuovo parco giochi e lo farà
lo farà per te così con
che a meno che non ce ne siano altri
altre domande ok sì ok yeah yeah I
posso farlo ho ancora tre minuti così
Posso mostrare un suggerimento opzionale vedere il
il tipo facoltativo è come ho detto loro così
ti piace incoraggiarti ad usare
tipi non opzionali, quindi ho il nostro entusiasmo
Lo chiamerò una stringa anche se è così
lo sa dall’inferenza di tipo quindi ora io
si può sapere variabile in modo che posso cambiarlo
bloccare dove puoi cambiarlo al basso I
posso cambiarlo in qualcosa, ma non posso
cambiarlo a zero zero nell’obiettivo-c lo è
null in ogni altro linguaggio moderno e
questo perché è perché stringa di
default ogni ogni tipo è un non è a
tipo non opzionale quindi il meccanismo per
rendendo opzionale Credo che sia la
lo stesso in un c-sharp è virata su a
punto interrogativo e questo lo indica
questo è un tipo nullable nel dentro di te
sai cosa sta facendo nel rovescio
è che in realtà lo rende un optional
è un tipo chiamato opzionale
e che accetta un parametro generico e
questa è in realtà un’enumerazione
questo è vero in realtà sì è stato un
enumerazione e all’interno di un nuovo amico tu
Ho detto che puoi avere enumerazioni
con tipi associati in modo da poter passare
su un’enumerazione e puoi dire caso
lasciamolo un po ‘lasciare XX o nessuno
che non è così in questo caso l’ho firmato
a zero e l’enumerazione ha detto ok è
non è un
nessun tipo ma se ho commentato questi
stringosi è uguale a zero
digita così che è un sacco di overhead
avere solo per il tipo opzionale così loro
avere tutto questo breve mano dove tu
posso solo dire okay direi stringa? e
piuttosto che dover accendere il
stringa si può fare questo se lasciate che dirò s
è uguale a scr imprime Lin, perché se solo io
prova a fare questo ti viene visualizzato un errore
oops scusa stampando bene la corda
stampare Lin non è una buona soluzione, ma facciamolo
dì una stringa più uguale a x così vado
per ottenere un errore perché sto lavorando su un
terribile errore che è un problema con
xcode ma ma hai un errore perché
sta dicendo primavera? non è identico a
Non so perché grazie volevo essere un
bit integer ma um ma quello che sta dicendo è
che non so davvero come operare
su questo tipo opzionale perché tu
non l’ho garantito in effetti
Esiste quindi se dico che sai se provo a
Per qualsiasi operazione su di esso ho bisogno di I
devi assicurarti di sapere che sai
cerchiamo di memorizzare 2 stelle uguali
più X quindi qui è un sì non ho
garantito che sia facoltativo e
ci sono un paio di modi diversi per affrontare
con esso lo fai se consenti la sintassi che
fondamentalmente dice va bene con in questo blocco s
è garantita la tua non facoltativa
fai ciò che viene chiamato scartare
l’opzionale è anche possibile ombreggiare il
stesso parametro che a volte è bello
se tu se vuoi scusarti chiacchiera il
stesso nome variabile che è bello se tu
voglio se vuoi solo annidarti
blocchi di codice che sono stati scartati
viene chiamato un altro meccanismo per farlo
usando un opzionale implicitamente da scartare
che è molto pericoloso e così è
indicato da a! quindi se lo dico lo sai
Sia s 2 uguale a stringa più xi ottieni un
errore ma poi dice che forse volevi
forse volevo scartare quello facoltativo
e dire che so davvero che questo esiste
quindi sai andare avanti e questo è
effettivamente usato molto nel cervello
all’obiettivo-c perché l’ estasi loro possono
avere l’ uso di poter tornare
molto spesso i metodi ritornano nil quando
quando sai che qualcosa è fallito o
qualcosa e, quindi, tu molti
obbiettivi a ponte obbiettivo-c hanno
facoltativamente ratto facoltativo non confezionato ma
il rovescio della medaglia è che se non è il tuo
il computer si blocca con un pozzo, lo sai
non sei il tuo computer l’esecuzione
si schianta in un posto strano così
questo è quello del pericolo e
usando implicitamente gli optionals così è
una specie di introduzione di tre minuti a
come funzionano gli optional con Swift
ma con quello credo di essere fuori
tempo 1110 quindi se qualcuno ne ha altro
le domande che mi circondano sanno tutto il giorno
sentiti libero di avvicinarti a me puoi farlo loro
puoi scrivermi a em w p1 o scusami
una calma empatica di mercato e qualsiasi altra ma
non puoi seguirmi su twitter perché io
non so come usarlo quindi grazie
tutto il tuo tempo e un altro ancora
cosa per favore valuti questa sessione usando
la tua app di go-to perché è davvero così
aiuta la conferenza e davvero
mi aiuta a sapere cosa sai se
la gente ha ottenuto tutto da loro
avrei potuto uscirne così, grazie
ancora
buongiorno spero che tutti si siano divertiti
sorprendente keynote prima il mio nome è Mark
perdomo e io sono un iOS indipendente
sviluppatore che ho sviluppato per iOS
da quando è stato aperto l’app store
indietro nel 2008 e prima di quello che sono stato
programmazione obiettivo-c per molto tempo
il tempo per quello era Java e lo sono stato
scrivere il codice per circa 30 anni, quindi ho
andato in giro così oggi ho intenzione di parlare
probabilmente avete sentito parlare di Swift
Swift come nuovo linguaggio di programmazione
sviluppato presso Apple è stato progettato per
alla fine lentamente sostituire l’obiettivo-c
ed è stato rilasciato a giugno per
la prima beta e solo una settimana e una
Mezzo fa è stato finalmente rilasciato al
pubblico in generale dove non è necessario
essere uno sviluppatore di Apple per iniziare
per iniziare a usarlo così è
disponibile gratuitamente per chiunque a
scaricare dall’app store mac e
questa sarà una panoramica del
linguaggio quindi inizieremo con alcuni
Dai un’occhiata veloce ad alcune FP e poi siamo
andando a fare qualche tweet e qualche hof e
allora stiamo andando a bork e spero di te
quelli che seguono e poi me ne vado
lasciare un po ‘di tempo per
domande mi piace lasciare una buona quantità
di imbottitura per domande quindi se lo fai
avere domande durante il discorso che faccio
incoraggiarti a inserirli per favore
vai all’app sul tuo dispositivo iOS o via
il vostro android e poi alla fine saranno i
ruotali tutti insieme e, si spera
siamo in grado di poter coprire un bel po ‘di loro
va bene così in flash bowl chi sente a
programmatore che sente programmi computer
ognuno di voi che è qui
programmatore di obiettivi-c Wow probabilmente
circa la metà di chi è un c-sharp
programmatore circa la metà e Java C ++ C
Haskell sì, mi piace diminuire il
rendimenti decrescenti va bene, questo è tutto
praticamente previsto, quindi iniziamo
con un tweet e ora sono piuttosto vecchio se
nella programmazione dei computer per un po ‘e
ammetto che non capisco veramente cosa
questo ciò che questa roba da tweet è solo te
sapere in qualche modo era totalmente diverso da
il twerk perché questo richiede un
Snapchat
mi confonde molto ma ho pensato
sai che sto imparando cose nuove che farò
saltare dentro e cercherò di imparare su questo
questo tweet e sembra piuttosto popolare
qui perché sembra che tutti
andando e la loro bicicletta a 40
miglia all’ora lo fa con il loro
testa in giù senza indossare un casco così
sembra essere di gran moda in questo in questo
città in questo paese così allo stampo e
sai che tipo di tocco aggiunto è giusto
questa intervista attiva vede così la metà di
tu che parli oggettivo-c riconosci
questa e l’ altra metà probabilmente
non c’è bisogno di capire cosa sia
soffitto perché probabilmente non lo farai mai
scrivilo ma hai capito di averlo
hai la tua interfaccia normale e hai
la tua implementazione vanno in modo diverso
file e hai bisogno di conservare quei file
sincronizzando te stesso c’è molto poco
aiuto e tu ce l’hai
e commerciale e hai qualche quadrato
parentesi ed è fondamentalmente un po ‘un
piccolo modello di come potresti fare un tweet
quindi hai questa interfaccia tweet e questo
tiene il nome utente in un corpo e poi giù
lì hai un servizio di tweeter e il
tweeter service tweeter il tuo tweet
e ha un singleton ed ecco a
piccola dimostrazione di come la usi così è
obiettivo-c può congratularmi con tutti
le persone che non l’hanno mai imparato
prima di ora sai tutto quello che devi sapere
ed è un tipo di meh è um the
il linguaggio si è evoluto per un quarto di a
secolo molto molto lentamente e ha una sorta di
rimossi dal contatto con alcuni dei
tendenze in lingue moderne: ecco
quello stesso lo stesso codice in Swift spero
voi tutti ottenuto che ormai tutti sapete Swift
quindi questa non è un’introduzione completa
alla lingua Swift che non stiamo andando a
impantanarsi due in sintassi e
dettagli e come esattamente si fanno le cose
questo è più parlare di come Swift può
cambia alcuni dei modi che decidi
per comporre e scrivere le tue app o le tue
conosci il tuo software come i tuoi servizi
per iniziare pensiamo a ciò che è
lo stesso in Swift come un obiettivo-c
Swift ha classi proprio come l’obiettivo-c
non sta uscendo dal
il paradigma orientato agli oggetti è considerato a
il linguaggio multi-paradigma ha metodi su
quelle classi ha protocolli che tu
sapere vedere un c-sharp e altre persone
preferisco le sue interfacce come estensioni
quali sono
che non hanno una buona analogia con un’altra
il linguaggio ha lo sai come chiamano
funziona come metodo attivo sulle classi
ha un po ‘di memoria automatica
gestione non ha spazzatura completa
collezione ma ha lo stesso
sorta di progressi nella gestione della memoria
usando quello che viene chiamato riferimento automatico
contando e poi ha chiusure che
un’obiezione vedi che siamo conosciuti come blocchi
quindi tutto questo niente di questo è nuovo
è fondamentalmente un uno-a-uno
traduzione dall’esistente
set di strumenti obiettivo-c che tutto ciò
metà di voi lo sa e probabilmente un po ‘
meno amore quindi ecco alcuni piccoli
aggiunte a cui Swift porta
obiettivo-c hai queste nuove cose
le strutture delle strutture chiamate sono simili
classi ma sono diversi sono
tipi di valore possiamo discutere il
implicazioni di ciò in un po ‘e
hai spazi dei nomi, finalmente non lo fai
devono essere come cavernicoli e prefisso o
classi con un paio di lettere maiuscole
lettere che speri rimarranno uniche
nel corso della storia e non in conflitto con
qualsiasi altra cosa e tu hai
costanti hai una costante mutabile
che aiuta a lavorare con alcuni
struttura dei dati immutabile che ti programma
il sovraccarico dell’operatore è stato a
alcuni di voi di C ++ sono sicuro che metà di voi
lo odio e lo hai amato e poi
hai interoperabilità con Objective
C quindi se viene eseguito nello stesso runtime di
obiettivo c quindi non funziona su a
macchina virtuale o e ne conosci qualcuno
sorta di livello di emulazione in esecuzione
lo stesso spazio di processo del tuo esistente
app che ti permettono di fare una volta a
senza problemi ma ti permette di
interagire con il tuo esistente con
il tuo codice iOS esistente così puoi
incrementale e adotta Swift nel tempo e
poi ci sono le grandi aggiunte lì
cose che fondamentalmente non esistono affatto
nell’obiettivo C o ne conosci altre
lingue e queste sono le cose che
che porta davvero in tavola
termini su come iniziare a iniziare
pensando in modo diverso a come scrivi
il tuo diritto il tuo software così ha
le enumerazioni e le enumerazioni non lo sono
solo regolari enumerazioni sono molto
potente sai il tipo di metodi su
loro e tipo di oggetti associati
che abbinato a un molto sofisticato
consente la specifica di corrispondenza del modello
tu ne fai alcuni molto interessanti
le cose che hai opzionale Swift è molto
pesantemente molto pesantemente inclinato verso
provando a
incoraggiarti a non avere valori nulli nel tuo
codice più quelli di voi che hanno mai
sperimentato un NullPointerException I
Non so se qualcuno abbia avuto molto
di nessuna eccezione puntatore e sono
raramente divertente o previsto e in un modo
intorno a quello è di non avere non null
abilità e così è davvero incoraggia che
e ti costringe a dichiarare esplicitamente
le tue proprietà sono state credulone
i generici tutti voi vedete programmatori taglienti
conoscilo e amalo ed è fantastico
Oltre al linguaggio è davvero
ti permette di stringere davvero il tuo
codice e so davvero cosa sta succedendo no
più hai un array NS dove
spero che tiri tutte le corde ma forse
ci sono alcuni istanti là e quello è
il divertimento ha di nuovo inferenza di tipo automatica C
persone affini hanno familiarità con questo ha
un sacco di supporto integrato per la mutevolezza
lungo le linee delle strutture ha due poli
che sono un po ‘come strutturare una luce
guarderemo quelli per un secondo e questo
ha funzioni di prima classe e
le funzioni di prima classe sono un’altra cosa
Mi concentrerò su oggi
perché per le funzioni di classe sono le
cosa che ti permette di adottare davvero
alcuni dei paradigmi più funzionali in
il tuo sviluppo, quindi ho ventilato su questo
ma guardiamo molto velocemente a questo
bit di codice swift che è l’equivalente
del servizio obiettivo-c che io
ha scritto prima che scrive il tweet
quindi hai colpito questo è un tweet
per ora si può pensare di una struttura come
classe questo è solo tenendo alcuni dati
questo contiene un nome utente e un corpo per
il tweet che VAR significa che può essere
cambiato il let, significa che è mutabile a sinistra
lo crei e poi hai il mio tweeter
servizio quindi non sei abituato a twittare il
tweet hai una funzione che richiede un
parametro chiamato tweet e cioè a
scrivi tweet e poi c’è un po ‘di magia
quello succede in quell’impianto e
poi c’è un singleton qui lo sai
puoi ottenere il tuo singolo servizio tweeter
e poi ecco un piccolo esempio di come
potresti farlo tu creerai il tuo
servizio tweeter ti verrà condiviso
servizio e fai il tuo messaggio e tu
spedisci il tuo tweet e sono molto carino
quindi noterai qualche altra cosa o no
punto e virgola si conosce il prefisso
stringhe con la e commerciale c’è il
frecce ascii o denotando i tipi di ritorno
in genere il tipo segue il nome
a differenza di dire in Java dove il nome dove
il tipo precede sempre il nome
e sì, intendo che probabilmente puoi immaginarlo
in pratica tutte queste cose dando un’occhiata
a questo sai come dico che puoi imballare il
lingua in quasi nessun tempo, quindi facciamolo
pensa al nostro servizio tweeter e
pensiamo che sai, pensiamo
su come potremmo migliorare su di esso e uno
delle cose che notiamo è che c’è
nessun modo per avere alcuna indicazione di se
il tweet è riuscito o fallito perché io
Immagino che questi escano su internet e
quindi a volte le cose possono andare storte
che non è completamente robusto, quindi noi
ho bisogno di capire come farlo in modo che abbiamo
ottenuto questa funzione restituisce questa funzione
vuoto perché non ha feedback e così
lo sai che lo sono, lo sai che è un cs01
studente e ho deciso che avrò solo un
ritorno di booleano lo dirò oh
okay, lo sai tornerà vero se
il tweet è riuscito nel pre fallito
e poi hai quella corsa nella tua
sul tuo thread principale sulla tua app e loro
clicca il pulsante tweet e il tutto
la cosa si blocca e devi iniziare
pensando di sapere che c’è forse un po ‘
più complessità a questo problema tu
in genere non voglio usare sai
metodi sincroni quando lavori
con cose che potrebbero essere lente e
imprevedibile come il traffico di rete così
sai che pensiamo un po ‘di te
sapere come potremmo andare a fare questo
e sai c-sharp che probabilmente usi
alcuni dei migliori servizi di sincronizzazione e
obiettivi vedi che avresti usato il
delicato Pat pessimo vecchi tempi e delegato
il modello è fondamentalmente hai questo
protocollo che è come un’interfaccia e
questo è varie richiamate lungo il
protocollo che verrà invocato come
varie cose accadono proprio ora, noi solo
ne hai uno che sai ritornare
indipendentemente dal fatto che il tweet abbia avuto successo
e poi sul servizio che disegni a
delegare ad esso e poi lo tweet
e poi quel delegato sarebbe stato chiamato
indietro e sapresti se era un
se ha funzionato o meno e poi tu
può decidere che cosa si vuole fare con
l’utente vuoi che tu lo sappia
loro sanno se lo sai se lo vogliono
riprovare o se vogliono rinunciare
o qualcosa e tu puoi fare esattamente il
stessa cosa e Swift e lo farai
adotta questi modelli in qualsiasi lingua tu
puoi avere un set di delegati
metodi un set di richiamata che si è concluso
essere chiamato così sai che puoi farcela
può fare tutto questo ma sai incontrarti
negli ultimi anni tutto il mainstream
le lingue sono diventate funzionali
caratteristiche allegate a loro
in te lo sai che Java è lambda
obiettivo-c è un blocco in C
chiusure taglienti ma sono tutte
fondamentalmente lo stesso sono tutti a
blocco differito di esecuzione del codice e
sono molto utili per cose speciali
come servizi asincroni ma anche in
la suddivisione del tuo codice in modulare
pezzi e questo è funzionale
programmazione essenzialmente funzionale
la programmazione è uno stile di programmazione
non è un insieme di requisiti rigorosi
ci sono linguaggi funzionali che hanno
un insieme di requisiti rigorosi che molto
un po ‘a seconda di quale accademico
persona accademica con cui stai parlando ma
uno dei prerequisiti principali di a
linguaggio di programmazione funzionale è quello
le funzioni sono prima di tutto oggetti di prima classe
oggetti di classe significa che sono alla pari
con il tuo in negozio alla pari con il tuo
corde o in parte con la tua abitudine
classi possono essere passati intorno a loro
possono essere possono essere conosciuti manipolati
possono restituire altre funzioni e
cose del genere così come ho detto è un
stile in modo da sapere che non si direbbe spazzato
al linguaggio di programmazione funzionale
ma diresti che permette quasi
ti incoraggia ad adottare un funzionale
stile per come fai le cose, quindi facciamolo
una cosa molto semplice che probabilmente molti
di voi avreste immediatamente saputo
pensato di fare che è quello che lascia il nostro
il servizio tweeter accetta invece un blocco a
chiusura che verrà invocata una volta il
una volta che il tweet è completo, quindi in questo
caso la sintassi per una chiusura è quella
è una funzione che accetta un singolo
parametrizza un tipo booleano e poi in
questo caso o diventa vuoto così CI così ecco
un esempio di come questo potrebbe essere usato
hai il tuo servizio di tweeter e ora
hai annullato il tuo nuovo booleano
parametro di funzione per il tweet e
allora hai questa funzione fatta e
questa è una variabile come qualsiasi altra
variabile e questo è di tipo questo è giusto
un singolo parametro di tipo restituisce booleani
vuoto e poi qui stiamo firmando il
variabile è qualcosa di successo nel tuo
nominando questo parametro e io credo in
c-sharp si usa 0 uguale a una freccia che
è meglio la sintassi ma hanno scelto in e
allora e poi noi sappiamo qualcosa
qui conosci successo e fallito e
quindi inviamo il tweet
quindi puoi sapere accorciare questo è un
molti di c’è un sacco di meccanismi per
compattare alcune delle cose che fai
hanno un sacco di utile stenografia qui
stai facendo la stessa cosa che sei
attaccandolo in linea nel
invocazione del servizio e poi qui
il tuo EV ancora più compatto se il tuo ultimo
il parametro di una funzione è a sua volta a
chiusura quindi non si può dichiarare
fuori linea quasi come se fossimo un flusso
dichiarazione di controllo quindi a in aggiunta a voi
non devi nominare i tuoi parametri
può semplicemente usare questo dollaro zero che è
consente il primo tipo di inferenza del parametro
sai cosa sarà quello
booleano e poi qui usiamo solo a
Turner ex recente, quindi questo è fondamentalmente
facendo la stessa cosa che stai mandando
un tweet e basta stampare se
o meno loro se ha successo o meno
o fallisce e questo è un ordine superiore
funzione tuttavia la funzione è semplicemente a
funzione che prende altre funzioni uguali
sai in buona funzione intraductale c
che tranne per bloccare quello che è assunto o
funzione se hai un metodo c-sharp
che accetta una chiusura quindi è a
funzione di ordine superiore in modo funzionale
lo stile di programmazione riguarda la composizione
funzioni e strutture trasformanti in
per compiere un compito pensiamo
di alcuni dei più popolari di alto livello
funzioni di cui spesso parlano le persone
soprattutto nel mondo funzionale e
questi sono filtri di mappa e riducono quello
tutti tutti sanno e amano nel
mondo funzionale non è molto non lo è
ma molto comunemente usato almeno in
il mondo dello sviluppo dell’obiettivo e
questi sono suoni un po ‘a
highfalutin e astratto all’inizio ma
tutto ciò che in realtà sono estremamente semplici
potresti scrivere ciascuna di queste funzioni
implementazioni in voi sanno che non è così
sono meno linee di codice almeno vedere la mappa
nel filtro una mappa richiede
un sacco di cose e lo trasforma in un
numero equivalente di un gruppo di altri
roba così ci vogliono dieci cose in termini di
un altro filtro per altre cose richiede un sacco di
cose come dieci cose e lo trasforma
in 10 o meno cose ma sono uguali
gentile e quindi ridurre il tipo di patti
giù tutti gli oggetti in una sola cosa
in alcune consuetudini
modo personalizzabile quindi è un po ‘
astratto quindi pensiamo a a
voglio dire che abbiamo scritto questo
servizio Twitter davvero robusto questo uh
conosci il livello del modello e questo livello API
quindi in realtà sto imparando molto su come
Twitter funziona e cosa puoi fare con
così penso che potrebbe effettivamente scrivere un
app ti farà sapere che qui twitter è un
ottima piattaforma per terze parti
sviluppatori per sviluppare così vado
al ho intenzione di scrivere il mio Twitter
cliente e sto andando e ho intenzione di
spedirlo sull’app store e lo sarà
sarà molto bello quindi vado a
sii in posizione specifica a cui sto andando
bersaglio il pubblico danese così ho
il mio gruppo di beta tester e io ho
una delle macchie più famose là fuori
sul nome di internet è Hamlet and and
estrai la mia app e lui è a sai
scrivendo per parafrasare con alcuni dei suoi
cose più famose che sta inviando
tweet tweet tweets e poi sai se
Funziona forse lo sarà e forse se lo fosse
non funziona forse dice di non essere ma
ma questa è la domanda per un altro giorno
così oh sai che è in grado di farlo
fai questo tanto sai tutto il giorno tutti i giorni
twittare un sacco di altre cose e lui
vuole espandere quella beta tech a a
così poco a no ad alcuni dei suoi amici
possiamo ottenere una seconda linea di destino di
testiamo così andiamo dal suo ottimo amico
Polonio e Polonio non sono noti per
essendo molto sintetico nelle sue parole e tu
sappi che sta mandando a cercare di farlo
inviare un messaggio diretto tweet al suo
figlio Laertes che sta per partire
La Francia e ha un sacco di grandi cose
un consiglio che probabilmente hai sentito
come né un mutuatario né un creditore essere
e non vedo perché questo non funzionerà
ma sai che sono abbastanza nuovo su Twitter
e poi questo accade così si scopre
che Twitter ti limita a fare 140
caratteri per i messaggi che invii
su internet che è ciò che è
tipo di noci per me perché ho pensato il
internet stava diventando più veloce e basta
più basso e cose del genere ma tu sai
è un processo che dobbiamo fare
il lavoro era così ora sto pensando che forse
Farò un po ‘di freddo, farò qualche locale
compressione specifica di tweet e invio
li mandiamo fuori a due
dimensioni ridotte rispetto a quelle originariamente
composto in modo che io non conosca veramente un
Danese, ma gli americani sono conosciuti e lontani
ampio per avere una grande capacità di apprendimento
e inizi a parlare altre lingue e io
conosci un po ‘di svedese perché
quando stavo crescendo ci siamo divertiti molto
serie di programmi educativi di a
gentiluomo che insegnerebbe entrambi i
Lingua svedese e cucina svedese lui
era una fantastica risorsa fantastica
ci sono svedesi nel pubblico giusto
ora mi viene detto su wikipedia che spremere
stanco della gente americana
avvicinandoci allo Chef svedese
ma è un personaggio molto amato nel nostro
nella nostra società in modo da conoscere uno dei
cose principali che impari dal
Lo chef svedese è la maggior parte delle parole in
Svedese sono in realtà una sola parola
solo Bork dice che il bork bork bork quando lui
inizia il processo che dice bork bork
bork alla fine quando qualcosa va
sbagliato e, e questo mi ha dato un’idea
sembra che probabilmente potrebbe ridurre
tutto fino a lavorare ora non sono stupido
So che lo svedese è completamente diverso
lingua e danese quindi sai che ho fatto un
un po ‘di ricerca e ho scoperto
questa è una traduzione abbastanza vicina
equivalente quindi abbiamo maiale così armato
con quella laurea che ho trascorso come
metà della mia ricerca e sviluppo
budget per venire con noi quindi è un
è abbastanza buono e penso che potrei
prendi un brevetto quindi diamo un’occhiata ad alcuni
funzioni di ordine superiore con il lavoro così
abbiamo il nostro nostro tweet body e il
il corpo del tweet è saltato usa un messaggio lungo
e vogliamo vogliamo tradurre questo
usando il nostro nuovo algoritmo di traduzione così
la prima cosa che vogliamo fare è che vogliamo
per dividerlo in parole e noi facciamo a
scissione abbastanza ingenua di esso dove noi
Diciamo che c’è una funzione integrata e
Swift ha chiamato una divisione e ci vuole un
un sacco di cose non tutte le stringhe
non è necessario che tu lo sappia
tipo particolare basta prendere una cosa
e quindi hai una callback di chiusura
che accetta i singoli componenti
della cosa
quindi restituisce se dovrebbe o meno
essere considerato un separatore, quindi stiamo andando
per usarlo per segmentare
il corpo in individuo individuale
le parole più sinteticamente si possono dire
il dollaro 0 è uguale alla citazione di citazione perché
usando l’inferenza di tipo lo farà
sapere qual è il tipo è così bello
piuttosto fresco fino ad ora abbiamo un po ‘di
parole roba NLP abbastanza avanzata giusta
lì e ora vogliamo ridurlo
un po ‘perché nella mia ricerca io
scoperto che di solito sono più lunghe le parole
quelli importanti e si può solo un po ‘
rilasciare quelli più corti perché raramente
sono lì i fini e il fa
e cose del genere quindi stiamo andando a
filtrarlo verso il basso il filtro si sta riducendo
un elenco di cose in un elenco degli stessi
tipo di roba in meno uguale o meno roba
quindi qui stiamo dicendo filtro e tu
passare una parola parametro e il conteggio
elementi è fondamentalmente nei termini di
la stringa sta dicendo quanto è lunga quella stringa
e una parola più grande di 7 caratteri
stiamo andando a che andremo a controllare
e così questa serie di grandi parole sta per
sii la lista filtrata di parole che
ora ha sette o meno caratteri
ecco qui è la parte incredibile che siamo
faremo il
traduzione qui e stiamo andando
per farlo dicendo mappa e quale mappa
ci vuole una lista di un sacco di cose
e lo trasforma in una lista di un gruppo
di altre cose dello stesso tipo questo è
dove dici come Google la mia domanda
conosci una specie di dizionario e usalo
come la traduzione sensibile al contesto di
parole e cose del genere ma loro
non ho fatto il tipo di ricerca che io
fatto dove ho imparato che ogni parola
è in realtà Bork, quindi ho intenzione di mappare tutto
queste grandi parole in Borg e l’ ultimo
cosa è la funzione che le persone
a volte ne ho un po ‘di più
difficoltà con cui si riduce in questo
caso ridotta sta per essere solo
combinando tutto in un unico
stringa per me ma ridurre sostanzialmente tutto
lo fa è ci vuole un elenco di cose e
lo trasforma in una singola cosa che ha fatto
lo riduco così nella mia riduzione qui
nel è un po ‘piccolo ma um è
prendendo due corde
e li sta solo aggiungendo
puoi essere più sintetico dicendo il
la funzione combinata richiede $ 0 in più
dollaro uno diventa ancora più compatto
perché nelle funzioni rapide gli operatori sono
funzioni e così nel caso di a
operatore che accetta di conoscere un tipo
a sinistra e un tipo di destra
puoi semplicemente scambiarlo con una chiusura
che accetta quei due tipi di
parametri quindi quello che facciamo dopo siamo noi
componi la funzione come una serie di
operazioni quindi la prima cosa che facciamo è
portiamo tutto insieme lo dividiamo
in parole lo filtriamo se noi
filtrare tutte le parole grandi noi
traduci tutto in bork e quando
lo trasformiamo in una singola stringa e
allora in questo caso particolare siamo in grado
a sono stati in grado di inviare un tweet nel
numero accettabile di caratteri che abbiamo
125 personaggi e Polonio è in grado di
inviare un consiglio molto molto utile a
posare le nostre T sulla sua alla vigilia della sua
viaggio in Francia e questo è quello che è
sembra e sono sicuro che la posizione di RT sta andando
essere in grado di capirlo e di essere
in grado di fare un grande uso di tutto ciò
saggezza che suo padre sta mandando così
Sono ciò che intendo tutti qui ti conoscono
potrebbe fare esattamente lo stesso in qualsiasi altro
in qualsiasi altra lingua il non farlo
magia che non potevi fare altrove
quindi per esempio nell’obiettivo C ecco come
potresti eseguire la stessa operazione tu
passa attraverso la tua conoscenza per i singoli passaggi
hai un sacco di looping hai a
un po ‘di ramificazione che attraversi
e tu rompi la parola e le cose
così puoi farlo in un modo semplice
obiettivo c puoi renderlo un po ‘
più succinta se ne stai usando qualcuno di
le comodità che i programmatori di cacao
impara come se esistesse un meccanismo integrato
per dividere stringhe basate su a
separatore c’è un sai che puoi
passare un blocco a un filtro e puoi farlo tu
puoi ridurlo così puoi farlo
Obiettivo C o altra lingua ma
grande differenza è che puoi farlo molto
succinto e lo sai con un po ‘
di esperienza estremamente leggibile che puoi
guarda oltre e dì ok, cos’è questo?
cosa sta facendo
l’altra cosa che sta facendo è
che non vi è alcuna alterazione nello stato
ovunque qui non ne stai cambiando
strutture dati sottostanti che di solito
sei entrato in te non stai creando non lo sei
creando direttamente ogni singolo array
e quindi modificarli e sottrarli
da loro e e dover dover
scherza con lo stato quando eviti
dover creare e manipolare lo stato
rendi il tuo codice molto più semplice
finisci per scrivere meno codice e con
meno codice meno in realtà è più quando tu
avere meno codice hai meno bug di te
avere meno hai meno manutenzione
problemi è più facile da capire è a
molto è molto più succinto quindi
quando stai cercando di adottare
stili di programmazione funzionale uno dei
le cose che vuoi fare è che tu voglia
pensa a come posso scrivere meno codice
Come posso come posso fermare il loop come può
Smetto di ramificarmi come posso ridurre il mio
manipolazione dello stato che continua all’interno
il mio programma e lo troverai con una mappa
e ridurre e filtrare si può effettivamente
eliminare quasi ogni ciclo che si accende
nel tuo codice puoi davvero farlo
davvero un abbandono solo una tonnellata di
stendardo che potresti essere tu
potrebbe essere stato scritto sopra
gli anni così in generale questo tipo di
i paradigmi hanno funzionato in tutto il
lingue moderne specialmente alcune delle
più lingue sperimentali su cui gira
la JVM come sta facendo Scala c-sharp
cose incredibili con te lo sai
chiusure e cose del genere a tutti
sta ottenendo funzionalità funzionali ibride
lavorato nel loro oggetto orientato
le lingue e Swift non lo sono certamente
unico al riguardo ma ce n’è uno
è un po ‘unico in quanto è uno dei
prime nuove lingue progettate per simili
sviluppo di applicazioni industriali che ha
questi concetti sono stati costruiti in una sorta di forno
fin dall’inizio e ciò consente
adotti più fluentemente alcuni di questi
stili come te
quindi dovrei dire che non sono un pagato
Evidente evangelista Sono solo personale
appassionato il cui felice non deve
scrivere ogg-c molto più se
del tutto e ce ne sono alcuni che conosci
ci sono alcuni spigoli è marchio
nuovo e ci sono bug in particolare
bug con alcune delle integrazioni IDE
con l’esecuzione e cose del genere
in modo che possa renderlo un po ‘
ingombrante per alzarsi e correre con a
proprio all’inizio che si collega come me
menzionato prima che si esegue nello stesso
elaborare lo spazio come obiettivo-c e il
altre librerie di Coco e questo è un
risultato abbastanza eroico da parte loro
ma molte di queste librerie sono state
sviluppato nell’ultimo quarto di secolo
loro risalgono all’era del tuo sapere
il prossimo passo e tu sai tutto il tutto
oggetti prefissati con insiemi NS dal
i prossimi giorni di passaggio negli anni ’80 e oltre
è vecchio e provato e vero codice che è
ottenuto abbastanza a prova di proiettile nel corso degli anni
ma non è idiomaticamente simile a
Veloce saprai che potresti avere
notato in alcuni di quello di vedere i giudici
codice che hai un metodo molto lungo
nomi strani errori di script sul lato di
nomi di metodi concisi quindi alcune parti di quello
il collegamento può essere un po ‘macchinoso
lavorare con non c’è più dinamica
spedisci una delle cose che
le persone obiettivo-c spesso amano il
linguaggio che è estremamente obiettivo
è estremamente dinamico e tu passi
messaggi agli oggetti piuttosto che tu sai
invocare il metodo e tu puoi farlo
uso intensivo della digitazione delle anatre e quindi è possibile
avere un tipo di oggetto e tu puoi
solo una sorta di passare un messaggio che tu
non necessariamente sapere se lo farà
ricevere o meno e forse questo può essere un proxy
quel metodo da qualche altra parte che consente
un sacco di potere ma lo consente anche
cambia basso ed è un compromesso
Swift Swift ha davvero perso quasi tutto
di quello non puoi fare molti di questi
cose come con un errore sul lato di
arrivare ad avere una digitazione più forte
e meno tipi di cowboy che codificano con
alcune delle cose che puoi fare dentro
obiettivo-c e il maggiore
stanno arrivando proprio ora, secondo me è così
non c’è solo la gestione degli errori incorporata
non c’è nessuna gestione delle eccezioni
nemmeno davvero un documento migliore
pratiche per come dovresti gestire
errori e questo fa sì
affrontare le condizioni di errore molto di più
ingombrante soprattutto in termini di voi
sapere quando devi interagire
forse qualcun altro con biblioteche e
sempre più ti usciranno
bisogno di pensare a come stai andando
ponte il tuo meccanismo per la gestione degli errori
con il loro meccanismo io personalmente
prevedi che sai che lo farà
cambierà nel tempo ma a partire da ora
versione 1 punto 0 rilasciato una coppia
settimane fa non c’è un solido incorporato
gestione degli errori quindi è una specie di a
è una specie di difetto di Swift
in questo momento così con quello quelli sono quello che io
ritengo il linguaggio delle carenze e lo farei
come per ottenere a tutte le domande che le persone
potrebbe avere nel pubblico sia
ci sono domande inserite in attraverso
l’app va bene Swift ti risponderebbe carina
chiaramente ci sono vantaggi e svantaggi
ora c’è una tonnellata come se tu guardassi
allo stack overflow o qualcosa che c’è
forse 10 milioni di risposte
obiettivo-c e ci sono forse 10 risposte
su Swift quindi c’è un sacco di molto
un corpo più grande di te conosce l’esistente
saggezza dell’obiettivo-c e codice sorgente e
codice di esempio e cose del genere
lì, ma non credo che questo
supera quello che supera il
Benefici dell’apprendimento, quindi prima di tutto
sarà molto più facile da imparare se tu
sai già C sharp o qualcosa del genere
Swift vorrà dire che sarai sveglio e
correre in un giorno non è un complesso
cosa la parte complessa della costruzione di un
l’app non è una lingua, è tutto
user sei tu che conosci i framework che
si lavora con la piattaforma fornisce
Android ha tutto ciò che conosci massiccia
insieme di cose e sai che la rete ha il suo
tutto ciò che sai di tutti i suoi componenti e
come funzionano e come funzionano i quadri
quello e iOS ha il suo intero tutto suo
mondo dei componenti dell’interfaccia utente e
meccanismi per
sai trovare le tue posizioni
in quel modo quelle sono le parti difficili
di apprendimento e saranno i
esatta stessa curva di apprendimento
rapido o obiettivo c così io personalmente
pensa di sapere che la mela ha detto
questo è il futuro di aiutare il software
per dispositivi iOS e per mac e
e penso che in pratica significhi te
dovresti sbagliare dalla parte di
Swift va bene così la domanda è stata
possibile scrivere un’app per iOS interamente in
Swift uno e due come circa il
retrocompatibilità uno sì è
puoi sapere se apri Xcode
e tu crei o nuovo un nuovo progetto
il modello dirà qual è il tuo valore predefinito
lingua e puoi dire Swift e tutti
può essere una singola riga di codice nella tua app
può essere scritto in Swift che ho scritto
app come quella coppia e sì
quello che sai una cosa voglio segnalare
fuori però si sa citato
interoperabilità con l’obiettivo C voi
può anche nel tuo progetto mescolare e abbinare
Obiettivo C in modo da poter avere alcuni di voi
devo vedere le lezioni e ne hai un po ‘
Classe celere se vuoi quale è veramente
bello se vuoi iniziare a migrare un
progetto esistente quindi forse già tu
avere un progetto con un cacciatore o giù di lì
classi Objective-C si può solo cadere in
una sola lezione Swift e tu puoi e tu
può iniziare a lavorare con quello che ci sono
sai che ci sono sfumature del ponte
c’è qualcuno che conosci i costrutti Swift
che non corrispondono esattamente all’obiettivo-c
sai che ho detto che c’erano
le strutture strutturano cose che non possono essere
Lì Swift solo così il ponte torna a
obiettivo-c non può capire il tuo codice
se usa le structs ma se usi if
usa le classi e la sottoclasse da
nsobject che è il tipo di root-class
e il tuo obiettivo c allora puoi farlo
puoi avere un po ‘di continuità
l’interoperabilità tra i due il
altra parte della domanda è di cosa si tratta
compatibilità all’indietro il così doloroso cosa
funziona sapendo in modo nativo su iOS 8 lo fa
eseguire su iOS 7 non sono sicuro se io o 7 o 7
punto uno ma il meccanismo con cui esso
è così quando stai costruendo
e stai dicendo che voglio essere in grado di farlo
corri
a 7 o superiore ne raggruppa alcuni
delle librerie Swift direttamente nel tuo
app le tue app binario e quindi carica
questo in fase di runtime ed è in grado di
eseguirlo secondo le linee di
come alcuni di voi conoscono gli altri
quadri che consentono la multipiattaforma
fascio di sviluppo in tutto ciò che si sa
tutte le librerie di cui ha bisogno, così sarà
aumentare le dimensioni dell’app di un po ‘
ma a parte questo dovrebbe essere carina
senza soluzione di continuità c’è un’altra domanda
ce n’è uno dal pubblico giusto
giusto così quando ho detto che non ha
dispacciamento dinamico non ero completo
ha dispacciamento dinamico ma
cioè si tratta di un uccello dalla dalla
linguaggio così come funziona quando
stai collegando l’obiettivo C è quello
come ho detto obiettivo c tu hai te
conosci il metodo su una classe e quelli finiscono
essere chiamato essenzialmente per nome usando
una tabella di spedizione piuttosto che come una V
tabella che avresti e in C ++ o
molte altre lingue è professione
sottoclassi da nsobject swift sorta di
entra in modalità di spedizione dinamica dove
qualsiasi funzione che dichiari sul tuo
la classe verrà inviata per nome in modo che
l’obiettivo c in modo che il codice di adiacenza
lo chiamerò così
teoricamente potrebbe esserci un po ‘
un po ‘ di memoria e sovraccarico delle prestazioni
ad esso non ne ho osservato nessuno
differenza nel comportamento ma ma sì
fa una specie di spedizione dinamica
modalità quando si è in sottoclasse
obiettivo-c un po ‘in obiettivo-c
mondo con cui lavori
roba ma soprattutto è oscurata da te
e allo stesso modo conosci l’obiettivo-c
le librerie richiedono molto spesso
un certo grado di invio dinamico dal
codice client, ad esempio, hai azione
modelli di destinazione in cui si sta specificando
selettori per quello che succede come quando tu
tocca un pulsante l’unico meccanismo con cui
puoi dichiarare che è una stringa in
Swift che è una specie di fiasco ma ma
sì, quello lo usa lo stesso
selettore
kizim fa quello che risponde al tuo
domanda molto bene si si te
quindi sì, allora è la spedizione
si verificano quando si eredita da
nsobject ma non hai nessuno dei
conosci i modelli che le persone usano
come se avessi un documento d’identità, no
equivalente di un ID dove puoi semplicemente
sorta di passare qualsiasi messaggio ad esso o
qualcosa di simile a ciò che le persone
stanno usando molto quando stanno ottenendo
cose dentro e fuori dai contenitori che sono
usando facendo un uso massiccio della tipizzazione delle anatre
come serie NS e roba così così yeah II
era forse incompleto quando ho detto
non esiste un dispacciamento dinamico
ma non è non è proprio la parte di
il linguaggio che è quello
promossi ci sono come per lì
che um no, se sei familiare?
scusa la domanda è stata ce n’è per
derisione e test framework il test
il supporto in questo momento è fondamentalmente un sottile
porta del test Xcode esistente
quadri che non sono particolarmente
sofisticato se li hai mai usati
sono fondamentalmente se usi mai un’unità j
è essenzialmente una continuazione dell’unità j
così beffardo non è qualcosa che fa parte
della lingua o dello sviluppatore
supporto comunque uno dei sai
ci sono molti tipi di germogliamenti
Swift progetta progetti open source
lì e so che sono un paio di loro
sono concentrati su
adottando alcuni di questi più popolari
quadri testati che vedete come
in nodejs e scala e cose del genere
in Swift e alcune delle abilità di swift
sovraccaricare gli operatori ti dà il
capacità di creare un certo grado di
lingue specifiche del dominio dsl e uno
delle applicazioni popolari è quello
realizzazione di framework di test personalizzabili
e so che ci sono un paio di progetti
là fuori che posso cercare
voi pochi se mi contattate dopo
altri ci interrogano
tu
giusto così la domanda di base sì sì
la domanda di base era in obiettivo-c
sai come ho detto che c’è questo ID
questo tipo di ID è come un generale
tipo di oggetto che tipo di tipo di può essere
trattato come qualsiasi cosa, ma devi essere
attento perché se si invia un
selettore non riconosciuto a tutto il tuo
Arresto anomalo di Apple a meno che tu non maneggi
questo e così l’interrogante era
chiedendo come lavori con questi tipi
di oggetti quando fai il ponte
obiettivo-c così obiettivo-c non ha
generici quindi sai di avere un NS
allineare il loro oggetto elenco principale e
che non ha alcun meccanismo di
esprimendo il tipo hai solo un
mazzo di ID in un simile per
ndictionary a cui potrebbero riferirsi alcune persone
come una mappa o un hash hanno solo te
conosci Kizer die DS conforme almeno
copia e valori o ID e molto
di frequente quando si sta chiamando in
codice del cacao si torna in serie NS e
la traduzione in Swift è quella di te
non avere array NS di tipo alcun oggetto
che c’è un protocollo che è
fondamentalmente non dichiara nulla solo
dice che potrebbe essere qualsiasi oggetto non lo è
che bello affrontarlo di solito tu
solo che il modo rapido è quello di lanciare
e spero che non ce ne fossero
scocciata puoi correre come filtro su di essa
come stavo mostrando prima che tu possa dire
sai filtrare le cose in base a
se sei o no positivo
che è del tipo che ti aspetti
ma è uno dei tipi di kludgy
aree di interazione con le cose
fondamentalmente devo fare un po ‘di
lavoro extra per lanciare le cose ora alcuni di
la parte dell’API di bridging è quella
loro hanno scritto loro si sono ristretti
giù i tipi che restituisce e quindi io
pensa in quei tipi di spessori che loro
a volte fai da ponte a te
tornare come una serie di stringhe ma
la maggior parte di loro sono solo una serie di qualsiasi
oggetto però non è grandioso che mi aspetto
quello che saprai arrivando
anni che saranno affrontati un po ‘
meglio come sai allenarti
i nodi del ponte Oh, c’è ne
altre domande dal pubblico vanno bene
Sì, non va bene adesso c’è
qualcosa chiamato specchio e come potresti
aspettati specchi come rifletti sulle cose
e ottieni un po ‘di informazioni
fuori dallo specchio puoi ottenere un po ‘di tipo
informazioni e cose ma riflessione
il supporto al momento è abbastanza debole e
quello può essere intenzionale perché il
il linguaggio cerca di guidarti molto di più
in te sai un tipizzato staticamente
sapere forte fortemente tipo statico
conosci la direzione piuttosto che sai
riflettiamo su questa cosa e otteniamo
indietro sai capire cosa fare
in base a quali tipi i tipi mantengono ma
è un po ‘un po ‘
debole ma si, voglio dire tu puoi sapere se
ottieni modifiche in qualsiasi oggetto che puoi interrogare
che tipo di classe è e poi tu
puoi cambiare il tuo comportamento basandoti su quello
decidere come eseguire il cast in modo che la domanda sia
non è abbastanza maturo per il codice di produzione
sì, sto scrivendo tutte le mie nuove app
lavorando e scrivendo puramente in Swift
il tempo è runtime estremamente robusto
sapere come ho detto è in esecuzione su
runtime oggettivo-c ed è una specie di
vecchio e provato e vero con questo proprio nuovo
set di librerie di classi che conosci
le aree difficili sono davvero in fase di sviluppo
in questo momento, ma runtime trovo di essere
fondamentalmente è a prova di proiettile come sai come
il resto se stai sviluppando un
obiettivo c jo I Sono personalmente molto
felice con esso finora alla fine lì
sì, la domanda è su unità
test tipo di tornare a tornare a
la domanda lì prima non c’è
qualsiasi supporto integrato davvero grande per
l’unità di test xcode stesso ha un test
quadro che hai conosciuto in qualche modo
roba di segnalazione carina come quella, ma è così
non corrisponde alla sofisticazione
che hai adesso in altri
lingue rispetto all’unità
testare le librerie e il tipo noto
di nuovi modelli che puoi
applicare ad esso
ci sono alcuni buoni sai che è molto
nuovo c’è un bi yo c’è una rete di carico
rivista chiamata obj CIO che ironicamente
il loro ultimo numero era tutto su Swift
questa è una buona panoramica e
introduzione sai che ce ne sono pochi
github proietta là fuori, ma penso
il davvero ha davvero il definitivo
risorsa sono il WWDC quest’anno nel 2014
la mela ti ha dato una serie di discorsi
rapido e hanno dato tre davvero grandi
parla che sai iniziare veloce
intermedio rapido e avanzato rapido
e puoi guardare tutti quelli gratis
sul loro sito web e sono altamente
raccomandato che fondamentalmente tu sai andare
su di te la lingua da prima
principi indipendentemente dal fatto o meno
conosci bene l’ obiettivo
C e loro lo coprono davvero bene e
hanno alcuni esempi nella loro
sito web stanno pubblicando sempre di più
col passare del tempo ma ma sì quello è a
buona risorsa oh e mele una mela
libro pubblicato disponibile sia nel web
sulla loro pagina degli sviluppatori pure
come in iBooks chiamato il programma Swift
linguaggio e questo è fondamentalmente il tutto
manuale per il linguaggio di programmazione a
un po ‘più di lettura manuale ma ma
molto utile come riferimento più
domande a tutti ok ho circa cinque anni
più minuti quindi ho intenzione di fare molto
demo rapida di una delle grandi funzionalità
di Swift che è stato introdotto come un
grande risorsa di apprendimento e si chiama
il parco giochi che probabilmente ti aspetti
probabilmente sentito parlare di esso e così così
il parco giochi è una modalità speciale in Xcode
che è l’ID mele mele ed è un
risorsa davvero fantastica per inizialmente
imparare la lingua è essenzialmente a
poco appunti in cui si può solo
tipo di tipo ed è eseguito come te
come te
scrivilo se voglio scrivere il mio primo
programma rapido posso digitare 1 + 2 e il 3
e poi quello è un bello
cosa bella da fare e puoi fare
sia uguale alla stringa e quindi puoi vedere
sul lato destro che è una stringa
e puoi vedere che s 2 è uguale a s
un altro e puoi vedere che non ti piace
obiettivo c hai una nazione
automaticamente in quattro stringhe che è
davvero carino e puoi scrivere lezioni
e funzioni e cose del genere quindi io
può fare come una struttura questo è come io
in realtà ha scritto il quadro per il mio
Tweet Tweet App quindi posso dire di avere un
struct noi un tweet e tu puoi dirti
avere un VAR dice username è una stringa
e tu hai un corpo e questo è un altro
stringa e quindi è possibile costruire il
tweet oops tweet minuscolo dove abbiamo
ha Amleto e il corpo è parole di parole
parole mondi mondi mondi quindi questo è un
ricerca fantastica per risorsa beta per
fondamentalmente raccogliendo la lingua e
appena sorta di giocare con esso
senza dover andare in giro con
fare un intero nuovo progetto e un intero
sai a conoscere il progetto Xcode
gestione puoi conoscere l’esperimento
con te sai che le stringhe sono uguali a s
comma s due e hai un paio di a
un paio di stringhe e puoi stringere
quella mappa e tu passi dentro sai dire a
la parola in questa è la nostra piccola traduzione
cosa che abbiamo scritto e mentre tu scrivi
sapere le cose sul lato destro iniziare
diventare grigio fino a quando il compilatore non sarà di tipo
raggiunge il con ciò che sei
facendo anche se in questo caso penso di essere io
potrebbe aver superato il compilatore
oops stringa e poi si okay si sbaglia
puoi vedere i nostri messaggi così sai
termini di apprendimento delle lingue di
risorsa fantastica per solo per ottenere
installato e funzionante e sperimentando
la sintassi sta vedendo come alcuni di questo tipo
lavori di inferenza e cose del genere così
se ti basta scaricare xcode gratuitamente da
il Mac App Store puoi solo
iniziare subito facendo un lavoro
nuovo nuovo parco giochi e lo farà
lo farà per te così con
che a meno che non ce ne siano altri
altre domande ok sì ok yeah yeah I
posso farlo ho ancora tre minuti così
Posso mostrare un suggerimento opzionale vedere il
il tipo facoltativo è come ho detto loro così
ti piace incoraggiarti ad usare
tipi non opzionali, quindi ho il nostro entusiasmo
Lo chiamerò una stringa anche se è così
lo sa dall’inferenza di tipo quindi ora io
si può sapere variabile in modo che posso cambiarlo
bloccare dove puoi cambiarlo al basso I
posso cambiarlo in qualcosa, ma non posso
cambiarlo a zero zero nell’obiettivo-c lo è
null in ogni altro linguaggio moderno e
questo perché è perché stringa di
default ogni ogni tipo è un non è a
tipo non opzionale quindi il meccanismo per
rendendo opzionale Credo che sia la
lo stesso in un c-sharp è virata su a
punto interrogativo e questo lo indica
questo è un tipo nullable nel dentro di te
sai cosa sta facendo nel rovescio
è che in realtà lo rende un optional
è un tipo chiamato opzionale
e che accetta un parametro generico e
questa è in realtà un’enumerazione
questo è vero in realtà sì è stato un
enumerazione e all’interno di un nuovo amico tu
Ho detto che puoi avere enumerazioni
con tipi associati in modo da poter passare
su un’enumerazione e puoi dire caso
lasciamolo un po ‘lasciare XX o nessuno
che non è così in questo caso l’ho firmato
a zero e l’enumerazione ha detto ok è
non è un
nessun tipo ma se ho commentato questi
stringosi è uguale a zero
digita così che è un sacco di overhead
avere solo per il tipo opzionale così loro
avere tutto questo breve mano dove tu
posso solo dire okay direi stringa? e
piuttosto che dover accendere il
stringa si può fare questo se lasciate che dirò s
è uguale a scr imprime Lin, perché se solo io
prova a fare questo ti viene visualizzato un errore
oops scusa stampando bene la corda
stampare Lin non è una buona soluzione, ma facciamolo
dì una stringa più uguale a x così vado
per ottenere un errore perché sto lavorando su un
terribile errore che è un problema con
xcode ma ma hai un errore perché
sta dicendo primavera? non è identico a
Non so perché grazie volevo essere un
bit integer ma um ma quello che sta dicendo è
che non so davvero come operare
su questo tipo opzionale perché tu
non l’ho garantito in effetti
Esiste quindi se dico che sai se provo a
Per qualsiasi operazione su di esso ho bisogno di I
devi assicurarti di sapere che sai
cerchiamo di memorizzare 2 stelle uguali
più X quindi qui è un sì non ho
garantito che sia facoltativo e
ci sono un paio di modi diversi per affrontare
con esso lo fai se consenti la sintassi che
fondamentalmente dice va bene con in questo blocco s
è garantita la tua non facoltativa
fai ciò che viene chiamato scartare
l’opzionale è anche possibile ombreggiare il
stesso parametro che a volte è bello
se tu se vuoi scusarti chiacchiera il
stesso nome variabile che è bello se tu
voglio se vuoi solo annidarti
blocchi di codice che sono stati scartati
viene chiamato un altro meccanismo per farlo
usando un opzionale implicitamente da scartare
che è molto pericoloso e così è
indicato da a! quindi se lo dico lo sai
Sia s 2 uguale a stringa più xi ottieni un
errore ma poi dice che forse volevi
forse volevo scartare quello facoltativo
e dire che so davvero che questo esiste
quindi sai andare avanti e questo è
effettivamente usato molto nel cervello
all’obiettivo-c perché l’ estasi loro possono
avere l’ uso di poter tornare
molto spesso i metodi ritornano nil quando
quando sai che qualcosa è fallito o
qualcosa e, quindi, tu molti
obbiettivi a ponte obbiettivo-c hanno
facoltativamente ratto facoltativo non confezionato ma
il rovescio della medaglia è che se non è il tuo
il computer si blocca con un pozzo, lo sai
non sei il tuo computer l’esecuzione
si schianta in un posto strano così
questo è quello del pericolo e
usando implicitamente gli optionals così è
una specie di introduzione di tre minuti a
come funzionano gli optional con Swift
ma con quello credo di essere fuori
tempo 1110 quindi se qualcuno ne ha altro
le domande che mi circondano sanno tutto il giorno
sentiti libero di avvicinarti a me puoi farlo loro
puoi scrivermi a em w p1 o scusami
una calma empatica di mercato e qualsiasi altra ma
non puoi seguirmi su twitter perché io
non so come usarlo quindi grazie
tutto il tuo tempo e un altro ancora
cosa per favore valuti questa sessione usando
la tua app di go-to perché è davvero così
aiuta la conferenza e davvero
mi aiuta a sapere cosa sai se
la gente ha ottenuto tutto da loro
avrei potuto uscirne così, grazie
ancora
Please follow and like us: