Использование скобок в F # - PullRequest
6 голосов
/ 22 ноября 2011

У меня проблема с пониманием использования скобок в F #.Для иллюстрации на простом примере два следующих консольных приложения ведут себя совершенно по-разному.Первый не ждет, когда я что-то наберу:

open System
let Main =
   Console.WriteLine "Hello"
   Console.ReadLine

В то время как второй делает:

open System
let Main =
   Console.WriteLine "Hello"
   Console.ReadLine()

Как мне понять разницу?

1 Ответ

10 голосов
/ 22 ноября 2011

Если функция не принимает параметров, вы указываете значение единицы () в качестве аргумента, как показано в следующей строке кода.

initializeApp()

Само по себе имя функции является просто значением функции, поэтому, если вы опустите скобки, которые указывают значение единицы, функция просто ссылается, а не вызывается.

http://msdn.microsoft.com/en-us/library/dd233229.aspx

Вот почему вы должны сделать Console.ReadLine() вместо Console.ReadLine (последний возвращает делегат функции)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...