2015-03-08 3 views
1

Компилятор указывает «Это выражение должно было иметь тип float []
, но здесь есть тип плавающего списка». Я думал, что «[]» был синтаксисом для списка. Я не могу упростить код для публикации, но, возможно, кто-то может создать пример, который будет генерировать эту ошибку. Я искал несколько веб-страниц в подписях.В F # в чем разница между float [] и поплавком?

+2

'float []' - массив с плавающей точкой, например '[| 1; 2. |] ' – Lee

+1

Спасибо. Интересно, почему они не используют «float [||]», чтобы избежать такого путаницы? –

+2

В основном это связано с тем, что синтаксис F # тесно моделируется, чтобы быть совместимым с OCaml, ведь при определенных обстоятельствах один и тот же код совместим на обоих языках. –

ответ

5

В аннотациях типа, [] обозначает массив. Это несмотря на то, что в обоих шаблонах и выражениях он обозначает списки.

Когда аннотирования списки, синтаксис float list обычно предпочтительно стандартной .NET нотации List<float>, чтобы избежать путаницы с System.Collections.Generic.List<> (который имеет тип ResizeArray аббревиатура в F #).

Смежные вопросы