Rekke koding og koding

Tirsdag, 14. oktober 2008

Noen hevder at programmering er en kunst, og i siste instans, kan jeg bare enig spesielt når løsninger er funnet svært forskjellig for samme problem. For å forstå hvordan sant dette er som en identisk trenger i medisimo språk (JavaScript) kan løses med tilnærminger ganske annerledes og originalt.

Venstre null tast

Et tall, men talen er også gyldig for alle strengen, 123 123 kan bli fylt til venstre - til å trekke - med et antall nuller, for eksempel: 00123 Dette behovet er presentert ved flere anledninger og er nyttig for innretta - eller vis - en ren, implisitt indikerer høyeste verdi. I videoen, for eksempel den klassiske poeng (poeng) er ofte indikert av 001234 ved de fleste det kommer til 999999 Her ser du hvordan problemet ble løst ved ulike utviklere:

JavaScript:
  1. / **
  2. * Venstre puten string
  3. *
  4. * @ Fra http://snipplr.com/view/8423/left-pad-string/
  5. * @ Forfatter web-http: / / www.mechanicmatt.com/
  6. *
  7. * @ Param num - for å fylle Striga
  8. * @ Param totalChars - Totalt antall tegn, inkludert "nuller"
  9. * @ Param padWidth - Karakterer brukes til å fylle, standard "0"
  10. * /
  11. num, totalChars, padWith ) { leadingZeros funksjon (num, totalChars, padWith) (
  12. num num + = "";
  13. ? padWith = (padWith)? padWith: "0";
  14. num. length <totalChars ) { if (lengde interne referansenummer <totalChars) (
  15. num. length <totalChars ) { while (lengde interne referansenummer <totalChars) (
  16. padWith + num = num;
  17. )
  18. { } Else ())
  19. num. length > totalChars ) { //if padWith was a multiple character string and num was overpadded if (lengde interne referansenummer> totalChars) (/ / hvis padWith var en av flere tegnstreng og num var overpadded
  20. num. length - totalChars ) , totalChars ) ; = Num num. Delstreng ((interne referansenummer lengde - totalChars), totalChars);
  21. { } Else ())
  22. return num;
  23. )
  24. leadingZeros ( "asdf" , 10 , "0" ) ) ; alert (leadingZeros ( "asdf", 10 "0"));

Denne løsningen er ekstremt velformulerte, men kan legge til et ubestemt antall 0 nummer num også velge font brukes av padWidth i stedet for standard 0
Definitivt originalen, men denne løsningen:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Fra http://snipplr.com/view/700/stringpad/
  5. * @ Forfatter http://d.hatena.ne.jp/brazil/20060721/1153489937
  6. *
  7. * @ Param str - for å fylle Striga
  8. * @ Param len - Totalt antall tegn, inkludert "nuller"
  9. * @ Param ch - Karakterer brukes til å fylle
  10. * /
  11. str, len, ch ) { return new Array ( len- ( '' +str ) . length + 1 ) . join ( ch ) + str } fungere rondell (str, len, kap.) (return new Array (len-(''+ str). lengde + 1). delta (ka) + str)
  12. pad ( 56 , 4 , '0' ) ) ; // 0056 alert (rondell (56, 4,'0 ')); / / 0056

Samme resultat, med en helt annen tilnærming. Igjen har vi muligheten til å bestemme antallet tegn padding gjennom parameteren len og fonten som brukes av ch Ikke klarer å bruke standard leveres i forrige funksjon.
Den ene som jeg bruker, i stedet ...:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Forfatter Giovambattista Fazioli
  5. * @ Web http://www.undolog.com
  6. *
  7. * @ Param s - å fylle Striga
  8. * @ Param l - En streng som angir tegnet er at lengden
  9. * For eksempel "0000"-tegnet = "0" lengde 4
  10. * /
  11. s,l ) { return ( l. substr ( 0 , ( l. length -s. length ) ) +s ) ; } padding-funksjon (r, l) (Return (l. substr (0, (l-s lengde. lengde)) + r);)
  12. padding ( '123' , '0000' ) ) ; alert (padding ('123 ','0000'));

Hvis du har andre interessante løsninger kan du kommentar : D

Related Post

16 kommentarer til: "varianter av koding og koding"

  1. getAvatar 1,0 Tirsdag, 14. oktober 2008 at 14:49
    Napolux sa:

    Linje 12 av funksjon forestille skal være:

      alert (padding ('123 ','0000')); 
    
    Svar Siter
  2. getAvatar 1,0 Tirsdag, 14. oktober 2008 at 14:53
    Giovambattista Fazioli sa:

    @ Napolux:

    Linje 12 av funksjon forestille skal være: alert (padding ('123 ','0000'));

    Riktig! : D

    Svar Siter
  3. getAvatar 1,0 Onsdag, 15. oktober 2008 at 10:07
    Francesco Gavello sa:

    Interessant, de 3 ulike tilnærminger! :)

    Svar Siter
  4. getAvatar 1,0 Mandag, 20. oktober 2008 at 10:14
    Camelize, CamelCase | Undolog.com sa:

    [...] Allerede sett i etterkrigstiden rekke koding og koding tilnærminger som en utvikler kan ha for å løse problemer er forskjellige og [...]

  5. getAvatar 1,0 Torsdag 06 november, 2008 på 00:10
    unwiredbrain sa:

    Jeg testet tidspunktet for alle tre metodene. Det første er tregere forutsigbarhet, mens det tredje er forbanna fort.

    Jeg lansert 100.000 ganger den enkelte metoder for å gjøre ham padding til ti sifrene i et firesifret tall, og jeg har samlet fra tid til annen kjøring gang med en banal

      var nytt = []; 
      var tid = 0; 
    
      for (...) ( 
          time = (ny dato). getTime (); 
          robaDaEseguire (); 
          nytt [i] = ((ny dato). getTime () - tid); 
      ) 
    

    På slutten har jeg beregnet aritmetiske gjennomsnittet av individuell tid.

    Den første algoritmen tar 0,06896 sekunder, andre benytter 0,06896 mens det tredje går opp til 0,01331.

    Øke antallet lanseringer millioner forskjellen mellom de tre begynner å bli påtagelig:
    Den første algoritmen tar 0.047184 sekunder, den andre 0.028644 mens det tredje bare 0,018635.

    Min forskning ubrukelig for i dag er gjort. En snart fordel.

    PS: Kurset bør tas med et smil på munnen ... ;-)

    Svar Siter
  6. getAvatar 1,0 Torsdag 06 november, 2008 på 16:59
    Napolux sa:

    @ Unwiredbrain:
    For nysgjerrighet, på hvilken nettleser du har testen? Har du prøvd andre nettlesere for å se om det er forskjeller mellom weblesere og leseren?

    Svar Siter
  7. getAvatar 1,0 Torsdag 06 november, 2008 på 17:05
    Giovambattista Fazioli sa:

    @ Napolux: Bravo! Jeg har fjernet jungeltelegrafen : D Jeg var fascinert av den også ... prøv Google Chrome : D

    Svar Siter
  8. getAvatar 1,0 Torsdag 06 november, 2008 på 18:39
    Napolux sa:

    PHP er alltid, JS endringer i henhold til leseren, nei? : P

    Svar Siter
  9. getAvatar 1,0 Fredag 07 november, 2008 på 01:02
    Napolux sa:

    @ Napolux:

    PHP er alltid, JS endringer i henhold til leseren, nei?

    Jeg forklarte onde ... jeg ønsket å si "endre motor JS henhold til leseren"

    Svar Siter
  10. getAvatar 1,0 Fredag 07 november, 2008 på 07:38
    unwiredbrain sa:

    @ Napolux, Giovambattista Fazioli: Firefox 3.0.3 på Linux.

    Opera åpenbart bringer ut resultatene for å si det minst spennende: i 0.010882, 0.013681, og (høre høre) 0,007994 millisekunder! Nesten 77, 52 og 57% avslag!

    Ah, jeg ser at det bare timer tidligere i kommentarer jeg snakket om sekunder: i realiteten er det millisekunder.

    Jeg vil gjerne se hvordan ting er hjemme KHTML / WebKit og Firefox 3.1, men fremdeles ikke har tilstrekkelig styrke og stabilitet for å gjøre alvorlige test. Jeg ber deg om å avkrefte det i tilfelle vet noe om det, ville jeg være fornøyd ... :-)

    Som for Chrome, så snart den er tilgjengelig for Linux spremerò meg å gå ... ;-)

    Hilsener.

    PS: snart publisere kilden til test suite, nå har jeg egentlig ikke tid ...

    Svar Siter
  11. getAvatar 1,0 Fredag 07 november, 2008 på 07:41
    unwiredbrain sa:

    Men mest av alt: hvorfor min gravatar de forlot å gjøre lystig Donnini at mercimonio selv? Mysteries av getAvatar ...

    Svar Siter
  12. getAvatar 1,0 Fredag 07 november, 2008 på 10:41
    Giovambattista Fazioli sa:

    @ Napolux:

    Jeg forklarte onde ... jeg ønsket å si "endre motor JS henhold til leseren"

    Riktig! Imidlertid å være nøyaktig, men PHP er ikke akkurat det samme, er det forskjellige versjoner på forskjellige servere, med flere utvidelser. Men dette er å anse for langt mer kompliserte tilfellene av våre. : D

    Svar Siter
  13. getAvatar 1,0 Mandag, 10. november 2008 på 18:29
    Napolux sa:

    @ Giovambattista Fazioli:

    @ Napolux: Jeg forklarte onde ... jeg ønsket å si "endre motor JS henhold til leseren" Riktig! Men å være nøyaktig, og med PHP er ikke akkurat det samme, er det forskjellige versjoner på forskjellige servere, med flere utvidelser. Men dette er å anse for langt mer kompliserte tilfellene av våre.

    Fiskale ... : P

    Svar Siter
  14. getAvatar 1,0 Mandag, 10. november 2008 på 18:42
    Giovambattista Fazioli sa:

    @ Napolux Kun med deg at jeg har råd til å være "presis" ... minst du forstår hva jeg mente : D og takker for beskatning : D

    Svar Siter
  15. getAvatar 1,0 Mandag, 10. november 2008 på 18:46
    Napolux sa:

    Nå begynner jeg å trolleggiare her, en liten "som de gjorde fra meg for KB / kB / Kb og godt selskap.

    : Mrgreen:

    Svar Siter
  16. getAvatar 1,0 Mandag, 10. november 2008 på 19:02
    unwiredbrain sa:

    @ Napolux: KIB og KIB løse alt.

    Svar Siter

Legg igjen en kommentar

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> href="" <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Bruk <pre> å legge koden