[cpl] Răspuns: [Tema2] Nelamurire test assign_mismatch2
Maxim Domentii
domentiimaxim at yahoo.com
Wed Dec 2 13:08:49 EET 2015
Salut,
Cred ca am gasit raspunsul la intrebarea mea.
Cred ca "tipurile intoarse de cele doua ramuri sunt compatibile" din specificatiile if-ului din manualul de lcpl ar insemna ca tipurile intoarse de cele doua ramuri ale unui if trebui sa aiba un tip de baza comun.
In cazul testului assign_mismatch2 tipurile intoarse de cele doua ramuri sunt Int si String. Aceste doua tipuri nu au un tip de baza comun.
Max.
În Marţi, 1 Decembrie 2015 0:13:45, Maxim Domentii via cpl <cpl at cursuri.cs.pub.ro> a scris:
Salut,
Puteti sa-mi explicati va rog de ce testul assign_mismatch2 trebuie sa arunce o exceptie de tipul IncompatibleOperandsException?O banuiala pe care o am eu este la operatorul binar "+" pentru operanzii "Minus" (String) si operatorul unar "-x" (Int).Nu se poate aplica operatorul "+" pentru un String si un numar negativ?
IncompatibleOperandsException s-ar mai putea arunca la assignment care se face intre un String si o intructiune if. If-ul intoarce pe ramura then un String (presupunand ca nu e nici un fel de problema cu operatorul binar de mai sus) si un int pe ramura else. Ce inseamna mai exact:
"Tipul if-ului este tipul ultimei instructiuni din cele doua ramuri, sau tipul Void in cazul in care [...] tipurile intoarse de cele doua ramuri nu sunt compatibile (unul din ele nu se poate converti catre celalalt)"
- ultima instructiune din cele doua ramuri?- unul din ele nu se poate converti catre celalalt?
Multumesc.
Max
_______________________________________________
cpl mailing list
cpl at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/cpl/attachments/20151202/194f520e/attachment.html>
More information about the cpl
mailing list