Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Scala
Scala Forum d'entraide pour le langage Scala
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 16h31   #1
xoum89
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 132
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 132
Points : 30
Points : 30
Par défaut error: type mismatch;

Bonsoir, pouvez vous m'aider à résoudre mon erreur dans mon programme

Voici mon erreur

Code :
1
2
3
4
5
6
7
found   : Int
 required: ?{val +(x$1: ?>: Double(1.5707963267948966) <: Any): ?}
Note that implicit conversions are not applicable because they are ambiguous:
 both method int2float in object Predef of type (x: Int)Float
 and method int2double in object Predef of type (x: Int)Double
 are possible conversion functions from Int to ?{val +(x$1: ?>: Double(1.5707963267948966) <: Any): ?}
                                                heading += Math.PI /2
Et voici une partie du code :

Code :
1
2
3
4
5
6
7
8
9
10
11
var heading = 0
 
if (x =='0') {
                                         if (index%2 == 0) {
                                                heading += Math.PI /2
                                        }
                                        else{
                                                heading -= Math.PI /2
                                        }
 
                                }
Cette erreur est une erreur de définition de variable.
Mais j'ai pas réussi à la résoudre.

Merci de votre aide.
xoum89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 11h17   #2
BHericher
Invité régulier
 
Inscription : février 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 5
Points : 6
Points : 6
Par défaut Problème de conversion

Quand vous écrivez :

var heading=0

vous déclarez une variable de type Int

Ensuite,

heading += Math.PI /2 est ambigü pour Scala car le compilateur peut soit convertir heading en Float, soit en Double et il ne sait pas choisir.

Par contre, si vous déclarez :

var heading = 0.0

Ca devrait passer!

Benoît
BHericher est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/11/2011, 22h37   #3
xoum89
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 132
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 132
Points : 30
Points : 30
Merci de ta réponse mais cela ne fonctionne pas.

J'avais trouvé la réponse mais pas mis le post en résolut.

Je trouve que scala est vraiment pas logique parfois.


var heading: Double = 0.

Il faut déclarer le type après le nom.
xoum89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 08h16   #4
BHericher
Invité régulier
 
Inscription : février 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 5
Points : 6
Points : 6
Bizarre, chez moi ça passe (scala 2.8.1) :

import Math._
var x= 0.0
x += Math.Pi/2

Juste un warning sur la dernière instruction (depreciation)

Benoît
BHericher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 08h52   #5
Yo Eight
Membre confirmé
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 89
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 89
Points : 285
Points : 285
C'est étrange, la solution de BHericher marche chez moi aussi (scala 2.9.1)

Citation:
Envoyé par xoum89 Voir le message
Je trouve que scala est vraiment pas logique parfois.

Il y a rien d'illogique, tu as déclaré un Int (certes indirectement), Scala le traite comme tel. L'inférence de type n'a rien de magique
Yo Eight est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web