Кто-нибудь может сказать мне, что не так с этим кодом и объяснить это?Строка ввода не была в правильном формате в 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
Я могу дать подсказку, что, когда это как
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
Затем он работает.
Просьба пояснить, что происходит, и в чем проблема с первым кодом.
также, если удалить 0 из последней строки, он жалуется ..
[Ваш код работает отлично] (https://ideone.com/yjFcW1). Что касается необходимости 0, когда вы используете 'EntryPoint', то функция, к которой она применяется, должна возвращать' int'. – ildjarn
Код работает нормально, не нужно. Когда у программы нет атрибута EntryPoint, который явно указывает точку входа, в качестве точки входа используются привязки верхнего уровня в последнем файле. –
Но если мы не собираемся что-то возвращать? какую ценность я должен вернуть? 0, похоже, имеет обычное значение «OK Executed» .. но насколько оно вообще? это всего лишь условное или обязательное правило для возврата 0? –