Aller au contenu


Photo

Economiser le code avec Swift


  • Please log in to reply
10 réponses à ce sujet

#1 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 887 messages
  • LocationPlestin-les-Grèves (22)

Posté 08 juillet 2017 - 23:13

1. Trier une liste de strings :

let sorted = ["charlie", "bravo", "alpha", "delta"].sorted(by: <)
2. Somme d'une liste de numéros :

let total = [1,5,3,7,9,2].reduce(0, +)

  • Draken, iLandes, colas_ et 1 autre aiment ceci

#2 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 599 messages
  • LocationParis

Posté 09 juillet 2017 - 11:26

Une autre, une autre, encore ..


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#3 helio

helio

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 212 messages

Posté 09 juillet 2017 - 12:56

J'avais trouvé ce genre de code à cette adresse :

 

https://useyourloaf....-filter-reduce/

 

impressionnant ce qu'il est possible de faire avec une seule instruction !

 

A+



#4 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 599 messages
  • LocationParis

Posté 09 juillet 2017 - 13:20

Il y a aussi FORMAT C: sous MS-DOS, un max d’effet avec un minimum de code ..


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#5 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 887 messages
  • LocationPlestin-les-Grèves (22)

Posté 09 juillet 2017 - 14:21

Et si tu veux créer tes propres opérateurs :

precedencegroup ExponentPrecedence
{
  associativity: left
  higherThan: AdditionPrecedence
}

infix operator ** : ExponentPrecedence


func **(num: Double, power: Double) -> Double
{
  return pow(num, power)
}

func test()
{
  let raised = [1,2,3,4,5].map{$0 ** 3}
}
func test()
{
  let raisedTotal = [1,2,3,4].reduce(2, **)
}


#6 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 887 messages
  • LocationPlestin-les-Grèves (22)

Posté 09 juillet 2017 - 14:31

Il y a aussi FORMAT C: sous MS-DOS, un max d’effet avec un minimum de code ..

 

Il y a une vingtaine d'ans, je travaillais comme consultante pour un seul jour avec une grosse entreprise nationale et, tout d'un coup, un mec s'est précipité dans la pièce en disant qu'il a tapé del *.* . Pas grave on pourrait dire mais le dossier actuel était c:\  ::)



#7 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 599 messages
  • LocationParis

Posté 09 juillet 2017 - 15:04

Il y a une vingtaine d'ans, je travaillais comme consultante pour un seul jour avec une grosse entreprise nationale et, tout d'un coup, un mec s'est précipité dans la pièce en disant qu'il a tapé del *.* . Pas grave on pourrait dire mais le dossier actuel était c:\  ::)

 

Un grand classique !


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#8 iLandes

iLandes

    Torréfacteur de fèves

  • Membre
  • PipPipPipPipPip
  • 821 messages
  • LocationLandes

Posté 10 juillet 2017 - 11:00

1. Trier une liste de strings :
 

let sorted = ["charlie", "bravo", "alpha", "delta"].sorted(by: <)

NB ce tri ne tient pas compte des majuscules 

let sorted = ["charlie", "bravo", "alpha", "Zoulou", "zoulou", "delta"].sorted(by: <)

["Zoulou", "alpha", "bravo", "charlie", "delta", "zoulou"]

--

seb@stien as iLandes

Linked In, Twitter, GitHub, StackOverFlowiLandes.fr

 

Applications : Plages.TVGirondins33Jardiner avec la luneDVRGVMidi Note Converter, FreeIMC.

 

It's not a bug, it's a feature.

Feature : A bug as described by the marketing department (Apple II Reference Manuel 1979 page 180)

 


#9 iLandes

iLandes

    Torréfacteur de fèves

  • Membre
  • PipPipPipPipPip
  • 821 messages
  • LocationLandes

Posté 10 juillet 2017 - 11:04

Il y a aussi FORMAT C: sous MS-DOS, un max d’effet avec un minimum de code ..

Le pire étant FDISK qui procédait à un formatage bas niveau, le FORMAT et le DEL étaient encore récupérable.

Salut les vieux  


--

seb@stien as iLandes

Linked In, Twitter, GitHub, StackOverFlowiLandes.fr

 

Applications : Plages.TVGirondins33Jardiner avec la luneDVRGVMidi Note Converter, FreeIMC.

 

It's not a bug, it's a feature.

Feature : A bug as described by the marketing department (Apple II Reference Manuel 1979 page 180)

 


#10 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 887 messages
  • LocationPlestin-les-Grèves (22)

Posté 10 juillet 2017 - 12:14

 

NB ce tri ne tient pas compte des majuscules 

let sorted = ["charlie", "bravo", "alpha", "Zoulou", "zoulou", "delta"].sorted(by: <)

["Zoulou", "alpha", "bravo", "charlie", "delta", "zoulou"]

 

Dans ce cas là on a la choix :

let sorted = ["charlie", "bravo", "alpha", "Zoulou", "zoulou", "delta"].sorted{ $0.localizedCaseInsensitiveCompare($1) == .orderedAscending }

qui donne - ["alpha", "bravo", "charlie", "delta", "Zoulou", "zoulou"]

 

ou

let sorted = ["charlie", "bravo", "alpha", "Zoulou", "zoulou", "delta"].sorted{ $0.localizedStandardCompare($1) == .orderedAscending }

qui donne - ["alpha", "bravo", "charlie", "delta", "zoulou", "Zoulou"]


  • iLandes aime ceci

#11 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 887 messages
  • LocationPlestin-les-Grèves (22)

Posté 10 juillet 2017 - 12:31

Il faut se souvenir que, avec Swift, il y a des nouveaux APIs pour faire les recherches, comparaisons, etc, en ignorant les maj/min et les accents ; comme :

let filtered = ["café","cafè","cafe"].filter{ $0.localizedStandardContains("e")}

qui donnera - ["café", "cafè", "cafe"]

 

Mais :

let filtered = ["café","cafè","cafe"].filter{ $0.contains("e") }

ne donnera que - ["cafe"]

 

Et, pour le triage :

let sorted = ["café","cafè","cafe"].sorted{ $0.localizedStandardCompare($1) == .orderedAscending }

qui donne - ["cafe", "café", "cafè"]

 

Mais :

let sorted = ["café","cafè","cafe"].sorted{ $0.compare($1) == .orderedAscending }

donne - ["cafe", "cafè", "café"]

 

Il faut faire attention avec ça !

 

Pour avoir le bon classement, il faut utiliser localisedStandardCompare  8--) 


  • iLandes aime ceci




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)