Почему это короткое замыкание в работе лямбды не?

Python использует циклы else after for и while, так что если к циклу ничего не применяется, происходит что-то еще. Например:

test = 3
while test == 4:
     print("Hello")
else:
     print("Hi")

Вывод будет «Привет» снова и снова (если я прав).

12
задан Alconja 15 July 2009 в 01:48
поделиться

4 ответа

Используется ли . Где используется в таблице <> ?

Если это так, то перед захватом каких-либо данных он должен преобразовать LINQ в SQL и для этого преобразовать строку в десятичное . Он пока не пытается фактически выполнять сравнения, он пытается построить конструкции, необходимые для извлечения данных.

11
ответ дан 2 December 2019 в 22:52
поделиться

Это помогает?

.Where(t =>  String.IsNullOrEmpty(someNullString) || (t.SomeProperty >= Convert.ToDecimal(someNullstring)))

Заметили () вокруг второго условия? Я не думаю, что это работает, но в целом я предпочитаю помещать () вокруг каждого условия в моем коде. Таким образом, компилятор знает, какие части принадлежат друг другу, когда он компилирует код, чтобы подготовить его к оценке короткого замыкания ...

-1
ответ дан 26 October 2019 в 15:50
поделиться

Я не могу воспроизвести какую-либо проблему с оценкой короткого замыкания ...

Я думаю, это выглядит примерно так:

[CompilerGenerated]
private static bool <MyMethod>b__f(MyObject t)
{
    return (String.IsNullOrEmpty(someNullString) 
                 || t.SomeProperty >= Convert.ToDecimal(someNullstring));
}

короткое замыкание здесь хорошо работает.

Я подозреваю, что другие элементы в вашем Enumerable оценивают первое условие ( String.IsNullOrEmpty (someNullString) ) как ложное.

-1
ответ дан 2 December 2019 в 22:52
поделиться

У вас есть переменная t в любой области, которая может быть оценена?

Вы пробовали использовать такие круглые скобки:

.Where(t =>  (String.IsNullOrEmpty(someNullString) || 
             t.SomeProperty >= Convert.ToDecimal(someNullstring)))

?

-1
ответ дан 2 December 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: