[clipper] funkcja if

0

W mocno już przestarzałym języku clipper jest funkcja trójargumentowa if(..) o działaniu identycznym z operatorem trójargumentowym ? :, w clipperze parametry przekazywane są przez wartość, tablice indeksowane są od jedynki. Intryguje mnie dlaczego poniższy kod nie powoduje błędu wykonania (co jest odkładane na stosie)

  i:=0
  tab:=[1,2,3]
  x:=if(i=0,13,tab[i])
  // w tym miejscu x=13
  x:=tab[i] // ten wiersz spowoduje błąd wykonania
0

czy wiesz, że pisząc tab:=[1,2,3] to jest "1,2,3" ( by mieć tablicę 3-elementową trzeba zapisać tab:={1,2,3} )
trudno żeby program się nie wywalił jeśli odwołanie robisz tab[0] a w clipperze są tabele od jeden
właściwie to nie rozumiem o co chodzi ;>

0

Pomyliłem się pisząc nawiasy

  i:=0
  tab:={1,2,3}
  x:=if(i==0,13,tab[i]) // chodzi o to dlaczego w tym wierszu nie ma błędu - co jest odkładane na stos ?
        // powinno być odłożone false, 13 oraz tab[0]

1 użytkowników online, w tym zalogowanych: 0, gości: 1