标签: pattern-matching

x?.y?.z是什么意思?

C#模式匹配的规范草案包含以下代码示例:

Type? v = x?.y?.z; 
if (v.HasValue) {
    var value = v.GetValueOrDefault();     
    // code using value 
} 
Run Code Online (Sandbox Code Playgroud)

据我所知,Type?表明Type是空的,但假设x,y以及z是当地居民,这是什么x?.y?.z意思?

c# pattern-matching

69
推荐指数
2
解决办法
5260
查看次数

byte []数组模式搜索

任何人都知道在byte []数组中搜索/匹配字节模式然后返回位置的有效方法.

例如

byte[] pattern = new byte[] {12,3,5,76,8,0,6,125};

byte[] toBeSearched = new byte[] {23,36,43,76,125,56,34,234,12,3,5,76,8,0,6,125,234,56,211,122,22,4,7,89,76,64,12,3,5,76,8,0,6,125}
Run Code Online (Sandbox Code Playgroud)

c# pattern-matching

68
推荐指数
9
解决办法
8万
查看次数

68
推荐指数
3
解决办法
2万
查看次数

如何比较scala中的两个数组?

val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false
Run Code Online (Sandbox Code Playgroud)

是否有模式匹配方式来查看两个数组(或序列)是否相同?

arrays scala pattern-matching

67
推荐指数
5
解决办法
3万
查看次数

Scala多种类型模式匹配

我想知道如何使用多种类型模式匹配.我有:

abstract class MyAbstract

case class MyFirst extends MyAbstract
case class MySecond extends MyAbstract
case class MyThird extends MyAbstract // shouldn't be matched and shouldn't call doSomething()

val x: MyAbstract = MyFirst

x match { 
 case a: MyFirst => doSomething()
 case b: MySecond => doSomething()
 case _ => doSomethingElse()
}
Run Code Online (Sandbox Code Playgroud)

所以我想写一些类似的东西:

x match {
 case a @ (MyFirst | MySecond) => doSomething()
 case _ => doSomethingElse()
}
Run Code Online (Sandbox Code Playgroud)

我在一些教程中看到了类似的构造,但它给了我错误:

pattern type is incompatible with expected type;
[error]  found   : object MyFirst …
Run Code Online (Sandbox Code Playgroud)

types scala pattern-matching

66
推荐指数
1
解决办法
5万
查看次数

模式与连词匹配(PatternA和PatternB)

Scala具有支持模式匹配中的析取的语言功能('Pattern Alternatives'):

x match {
    case _: String | _: Int => 
    case _ =>
}
Run Code Online (Sandbox Code Playgroud)

但是,如果仔细检查满足PatternA PatternB(连接),我经常需要触发一个动作.

我创建了一个模式组合器'&&',它增加了这个功能.三条小线条让我想起为什么我爱斯卡拉!

// Splitter to apply two pattern matches on the same scrutiny.
object && {
  def unapply[A](a: A) = Some((a, a))
}

// Extractor object matching first character.
object StartsWith {
  def unapply(s: String) = s.headOption
}

// Extractor object matching last character.
object EndsWith {
  def unapply(s: String) = s.reverse.headOption
}

// Extractor object matching length.
object Length {
  def …
Run Code Online (Sandbox Code Playgroud)

scala pattern-matching

60
推荐指数
2
解决办法
6763
查看次数

全局匹配,排除所有JS文件

我是gulp.js的新用户.我想将所有非javascript文件移动到构建目录.我现在得到的是:

//Test copy
gulp.task('test-copy', function() {
    gulp.src(['myProject/src/**/*.!(js|map|src)'])
        .pipe(gulp.dest('myProject/build'));
});


//Results for various files
myProject/css/style.css //Copied - GOOD
myProject/html/index.html //Copied - GOOD
myProject/js/foo.js //Not Copied - GOOD
myProject/js/bar.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.map //Copied - BAD!
Run Code Online (Sandbox Code Playgroud)

如您所见,它只匹配文件路径字符串中的第一个点之后,而不是最后一个,如我所愿.如何修改glob搜索字符串以按照我的意愿行事?

glob pattern-matching node.js gulp

60
推荐指数
1
解决办法
4万
查看次数

模式匹配`@`符号

鉴于此Person案例类:

scala> case class Person(name: String, age: Int) {}
defined class Person
Run Code Online (Sandbox Code Playgroud)

......而这个例子

scala> val b = Person("Kevin", 100)
b: Person = Person(Kevin,100)
Run Code Online (Sandbox Code Playgroud)

是否有理由喜欢这个代码(有@)

scala> b match {
     |    case p @ Person(_, age) => println("age")
     |    case _ => println("none")
     | }
age
Run Code Online (Sandbox Code Playgroud)

...以下?

scala> b match {
     |    case Person(_, age) => println("age")
     |    case _ => println("none")
     | }
age
Run Code Online (Sandbox Code Playgroud)

也许我错过了意义/力量@

scala pattern-matching

57
推荐指数
2
解决办法
1万
查看次数

如何使用SIFT算法计算两个图像的相似程度?

我使用了Andrea VedaldiSIFT实现来计算两个相似图像的筛选描述符(第二个图像实际上是从不同角度放大同一个对象的图片).

现在我无法弄清楚如何比较描述符以告诉图像有多相似

我知道这个问题是不负责任的,除非你之前真的玩过这些东西,但我认为之前做过这个的人可能知道这个,所以我发布了这个问题.

我做的很少生成描述符:

>> i=imread('p1.jpg');
>> j=imread('p2.jpg');
>> i=rgb2gray(i);
>> j=rgb2gray(j);
>> [a, b]=sift(i);  % a has the frames and b has the descriptors
>> [c, d]=sift(j);
Run Code Online (Sandbox Code Playgroud)

matlab image-comparison pattern-matching computer-vision sift

56
推荐指数
2
解决办法
5万
查看次数

Mongo中不区分大小写的搜索

我在Mongo中使用不区分大小写的搜索,类似于/sf/ask/385057641/.

即我正在使用带有选项的正则表达式i.但是我在将正则表达式限制为该单词时遇到了麻烦,它在SQL中的表现更像"喜欢"

例如:如果我使用查询 {"SearchWord" : { '$regex' : 'win', $options: '-i' }},它会显示win,window和winter的结果.我如何将其限制为jsut show win?

我试过了,/^win$/但它说无效Json ....请建议一个方法.

提前致谢

regex case-insensitive pattern-matching match mongodb

56
推荐指数
3
解决办法
6万
查看次数