что означает "-" в C # и как в F # - PullRequest
0 голосов
/ 04 февраля 2012

в C # есть такой код

int someVariable=10;
--someVariable; //what is the meaning?

как насчет F #?я могу сделать как в коде C #?

Ответы [ 4 ]

3 голосов
/ 04 февраля 2012

Это означает то же самое, что и someVariable = someVariable - 1 .

Результат будет 10 - 1 или 9.

2 голосов
/ 04 февраля 2012

Другие объяснили оператор -- в C #. Поскольку F # является функциональным языком программирования, который поддерживает неизменяемость по умолчанию, нет встроенного оператора, который делает то же самое. Вы должны написать это явно, используя mutable значения:

let mutable someVariable = 10
someVariable <- someVariable - 1

Поскольку пользователи знают об изменчивости, используя ключевые слова mutable, они могут избежать некоторых ошибок, подобных тем, которые вызваны скрытыми побочными эффектами операторов префикса и постфикса -- в C #.

Как сказал @Daniel в комментарии, вы также можете использовать для этой же цели справочную ячейку и decr .

1 голос
/ 04 февраля 2012

Оператор -- ДО переменной уменьшает значение на единицу перед возвратом значения. ПОСЛЕ переменной, она получает значение, а затем уменьшается. Так

 int i = 2;
 ((--i) == 2) # false

и значение i равно 1 после.

 int i = 2;
 ((i--) == 2) # true

и значение i по-прежнему равно 1 после.

Я не думаю, что у F # есть.

0 голосов
/ 04 февраля 2012

Чтобы уточнить, значение --someVariable:

(someVariable=someVariable-1;return someVariable)

в отличие от someVariable--, что означает:

(return someVariable; someVariable=someVariable-1)

(который не является действительным в его нынешнем виде, но дает вам идею);

Есть эквивалентные префиксные и постфиксные операторы ++. На самом деле оператор postfix ++ наиболее часто используется в долгом пути, хотя важно знать о других.

Двойные точки с запятой в конце неправильные, но не недействительные. Похоже, кто-то скопировал форму куда-то еще или привык писать на другом языке.

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