Quelqu'un peut me dire ce qui ne va pas avec ce code et l'expliquer?Chaîne d'entrée n'était pas dans un format correct en F #
open System
let hexarea t:float =
(3.0*Math.Sqrt(3.0)/2.0) * Math.Pow(t, 2.0)
let value = float (Console.ReadLine())
let calc = hexarea value
printfn "%f" calc
Je peux donner un indice, que quand il est comme
open System
let hexarea t : float =
(3.0 * Math.Sqrt(3.0)/2.0) * Math.Pow(t,2.0)
[<EntryPoint>]
let main argv =
let value = float (Console.ReadLine())
let calc = hexarea value
printf "%f" calc
0
Ensuite, il fonctionne.
S'il vous plaît clarifier à moi ce qui se passe et quel est le problème avec le premier code.
aussi, si je retire 0 de la dernière ligne, il se plaint ..
[Votre code fonctionne très bien] (https://ideone.com/yjFcW1). Pour avoir besoin du 0, quand vous utilisez 'EntryPoint', la fonction à laquelle il s'applique doit retourner un' int'. – ildjarn
Le code fonctionne très bien, pas besoin de. Lorsqu'un programme n'a pas d'attribut EntryPoint qui indique explicitement le point d'entrée, les liaisons de niveau supérieur du dernier fichier sont utilisées comme point d'entrée. –
Mais si nous ne sommes pas sur le point de retourner quelque chose? quelle valeur devrais-je retourner? 0 semble avoir une signification conventionnelle de "OK Exécuté" .. mais comment c'est général? c'est une sorte de convention ou de règle obligatoire pour renvoyer 0? –