Vlákno názorů k článku Ruby z rychlíku (2) od Frn - Vypadá to jako zajímavý jazyk. Ale rád bych...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 2. 2002 8:10

    Frn (neregistrovaný)

    Vypadá to jako zajímavý jazyk. Ale rád bych si ještě upřesnil pár detailů :

    - dá se definovat pole, kterému některé prvky chybí ?
    Např. a=['p','o',,,'l','e']
    čemu se ppak rovnají neexistující prvky ? Nil ?

    - co se stane, pokud se inicializuje prvek "daleko" mimo současné rozmezí ?
    Např a[10]="x"

    - když se indexy počítají od 0, co mi vrátí a.index, pokud hledaný prvek není součástí pole ? -1 ?

    - co přesně znamená "kontrola mezí indexů" ? Už článek zmiňuje případ, kdy se přidá prvek zapsáním na dosud neexistující pozici, takže to mi není úplně jasné.

    - v kapitole o regulárních výrazech vypadá výraz pro test data nevěrohodně. Mám dojem, že by "prošly" i :
    .1.2000
    1.0.0000
    111.111.2002


    Jinak díky za perfektní článek. Tento jazyk je docela šikovný a určitě se časem rozšíří.

  • 15. 2. 2002 9:05

    Dalibor Šrámek (neregistrovaný)

    Odpovím také příklady:
    irb(main):002:0> a=['a',nil,nil,'b']
    ["a", nil, nil, "b"]
    irb(main):003:0> a[10]='c'
    "c"
    irb(main):004:0> a
    ["a", nil, nil, "b", nil, nil, nil, nil, nil, nil, "c"]
    irb(main):005:0> a.index 'k'
    nil

    Metoda compact odtsraňuje nil prvky z pole:
    irb(main):006:0> a.compact
    ["a", "b", "c"]
    irb(main):007:0> a.compact[2]
    "c"

    Kontrola indexů možná není šťastný termín. Měl jsem na mysli právě automatické přizpůsobení pole a vracení nil při překročení mezí.

    Ten regulární výraz není dokonalý - je to spíše ilustrace. Nicméně trojciferný den nebo měsíc by neprošel.