标签: predicate

如何否定方法引用谓词

在Java 8中,您可以使用方法引用来过滤流,例如:

Stream<String> s = ...;
long emptyStrings = s.filter(String::isEmpty).count();
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个方法引用,它是对现有方法的否定,即:

long nonEmptyStrings = s.filter(not(String::isEmpty)).count();
Run Code Online (Sandbox Code Playgroud)

我可以创建not如下所示的方法,但我想知道JDK是否提供了类似的东西.

static <T> Predicate<T> not(Predicate<T> p) { return o -> !p.test(o); }
Run Code Online (Sandbox Code Playgroud)

java predicate negate java-8

301
推荐指数
8
解决办法
11万
查看次数

C#中的谓词代表

你能解释一下:

  • 什么是谓词代表?
  • 我们应该在哪里使用谓词?
  • 使用谓词时的任何最佳实践?

描述性源代码将不胜感激.

.net c# predicate

251
推荐指数
6
解决办法
12万
查看次数

为什么Func <T,bool>而不是Predicate <T>?

这只是一个好奇的问题,我想知道是否有人有一个很好的答案:

在.NET Framework类库中,我们有两个方法:

public static IQueryable<TSource> Where<TSource>(
    this IQueryable<TSource> source,
    Expression<Func<TSource, bool>> predicate
)

public static IEnumerable<TSource> Where<TSource>(
    this IEnumerable<TSource> source,
    Func<TSource, bool> predicate
)
Run Code Online (Sandbox Code Playgroud)

他们为什么用Func<TSource, bool>而不是Predicate<TSource>?好像Predicate<TSource>只由List<T>Array<T>,而Func<TSource, bool>所使用的几乎所有QueryableEnumerable方法和扩展方法...什么与怎么了?

.net c# predicate func

207
推荐指数
4
解决办法
5万
查看次数

如何将String转换为其等效的LINQ表达式树?

这是原始问题的简化版本.

我有一个名为Person的类:

public class Person {
  public string Name { get; set; }
  public int Age { get; set; }
  public int Weight { get; set; }
  public DateTime FavouriteDay { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

......然后说一个例子:

var bob = new Person {
  Name = "Bob",
  Age = 30,
  Weight = 213,
  FavouriteDay = '1/1/2000'
}
Run Code Online (Sandbox Code Playgroud)

我想在我最喜欢的文本编辑器中将以下内容写成字符串 ....

(Person.Age > 3 AND Person.Weight > 50) OR Person.Age < 3
Run Code Online (Sandbox Code Playgroud)

我想取这个字符串和我的对象实例并评估一个TRUE或FALSE - 即在对象实例上评估一个Func <Person,bool>.

这是我目前的想法:

  1. 在ANTLR中实现基本语法以支持基本比较和逻辑运算符.我想在这里复制Visual Basic优先级和一些功能集:http://msdn.microsoft.com/en-us/library/fw84t893(VS.80).aspx
  2. 让ANTLR从提供的字符串中创建合适的AST. …

c# dsl lambda antlr predicate

164
推荐指数
4
解决办法
8万
查看次数

c#中的谓词是什么?

我是使用谓词的新手,刚学会了如何编写:

Predicate<int> pre = delegate(int a){ a %2 == 0 };
Run Code Online (Sandbox Code Playgroud)

谓词将返回什么,以及编程时它如何有用?

.net c# vb.net predicate

163
推荐指数
4
解决办法
14万
查看次数

查找与谓词匹配的序列中的第一个元素

我想要一种惯用的方法来查找列表中与谓词匹配的第一个元素.

目前的代码非常难看:

[x for x in seq if predicate(x)][0]
Run Code Online (Sandbox Code Playgroud)

我想过把它改成:

from itertools import dropwhile
dropwhile(lambda x: not predicate(x), seq).next()
Run Code Online (Sandbox Code Playgroud)

但是必须有一些更优雅的东西...... None如果没有找到匹配,如果它返回一个值而不是引发异常会很好.

我知道我可以定义一个函数:

def get_first(predicate, seq):
    for i in seq:
        if predicate(i): return i
    return None
Run Code Online (Sandbox Code Playgroud)

但是开始使用像这样的实用程序函数来填充代码是非常无味的(并且人们可能不会注意到它们已经存在,所以如果存在已经提供相同的内置函数,它们往往会随着时间的推移而重复).

python predicate

149
推荐指数
4
解决办法
8万
查看次数

内置的Java 8谓词总是返回true?

Google Guava有一个始终返回true的谓词.Java 8有类似的东西Predicate吗?我知道我可以使用(foo)->{return true;},但我想要预制的东西,类似于Collections.emptySet().

java lambda predicate java-8

116
推荐指数
3
解决办法
4万
查看次数

Java中的谓词

我正在浏览PredicateJava 中使用的代码.我从来没用过Predicate.有人可以指导我Predicate在Java中的任何教程或概念解释及其实现吗?

java predicate guava

100
推荐指数
2
解决办法
10万
查看次数

在Swift中使用谓词

我正在为我的第一个应用程序(学习Swift)编写教程:http: //www.appcoda.com/search-bar-tutorial-ios7/

我坚持这部分(Objective-C代码):

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c]         %@", searchText];
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何在Swift中为NSPredicate创建一个等价物?

predicate objective-c ios ios7 swift

90
推荐指数
6
解决办法
12万
查看次数

如何在Core Data中编写BOOL谓词?

我有一个类型的属性,BOOL我想搜索此属性所在的所有托管对象YES.

对于字符串属性,它很简单.我创建一个这样的谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName = %@", userName];
Run Code Online (Sandbox Code Playgroud)

但是我该如何做,如果我有一个名为selected的bool属性,我想为此做一个谓词?我可以这样做吗?

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"selected = %@", yesNumber];
Run Code Online (Sandbox Code Playgroud)

或者我是否需要其他格式说明符并且只是通过YES

iphone predicate core-data ipad ios

79
推荐指数
5
解决办法
4万
查看次数

标签 统计

predicate ×10

c# ×4

.net ×3

java ×3

ios ×2

java-8 ×2

lambda ×2

antlr ×1

core-data ×1

dsl ×1

func ×1

guava ×1

ios7 ×1

ipad ×1

iphone ×1

negate ×1

objective-c ×1

python ×1

swift ×1

vb.net ×1