Chaines égales ou pas?

Bonjour,

j’aurai besoin de savoir si je suis complètement à la dérive sur le plan intellectuel… ou si 4D est farceur : (l’un n’empêche pas l’autre)
(MacOS Catalina, 4Dv18R3)

$el_:=1
$t_:=“a1”

$b_:=(“a”+ Chaîne ($el_)=$t_) // ok
$b_:=($t_=“a”+ Chaîne ($el_)) // arguments incompatibles (erreur 15 en mode trace)

Alors, est ce que j’ai manqué quelque chose ou bien c’est 4D ?

et pourquoi pas quelques parenthèses

$b_:=($t_=(“a”+ Chaîne ($el_)))

?

Bonjour Laurent,

Malheureusement, sauf erreur de ma part, 4D ne permet pas l’assignation avec le caractère ‘=’ (et encore moins dans un bloc…)

Lorsque tu demandes à 4D :

$t_="a"

ça revient à tester une égalité entre la valeur assignée à la variable $t_ et la lettre ‘a’ donc ça renvoi un booléen.

donc ton code revient à faire

(faux + chaine($el_))

ce qui est bien sûr interdit puisque les types sont différents…

selon le besoin tu peux également utiliser

$t_:="a"
$b_:=Num($t_="a")*($t_+String($el_))

effectivement… je me ferai toujours avoir avec cet ordre étrange des priorités des opérateurs.