+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre du Club
    Inscrit en
    janvier 2008
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 161
    Points : 46
    Points
    46

    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.

  2. #2
    Invité régulier
    Inscrit en
    février 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 6
    Points : 8
    Points
    8

    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

  3. #3
    Membre du Club
    Inscrit en
    janvier 2008
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 161
    Points : 46
    Points
    46

    Par défaut

    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.

  4. #4
    Invité régulier
    Inscrit en
    février 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 6
    Points : 8
    Points
    8

    Par défaut

    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

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2009
    Messages
    98
    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 : 98
    Points : 304
    Points
    304

    Par défaut

    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

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •