我正在尝试下面的代码:
val set1 = Set(1,2,3,4,5,67,8)
val TRUE_BOOLEAN = true
val FALSE_BOOLEAN = false
set1.contains(4) match {
case TRUE_BOOLEAN => println("Element found")
case FALSE_BOOLEAN => println("Element not found")
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时IntelliJ,它会在Messages标签中给出以下警告:
Warning:(11, 16) match may not be exhaustive.
It would fail on the following inputs: false, true
set1.contains(4) match {
Run Code Online (Sandbox Code Playgroud)
然而,如果我使用true而false不是TRUE_BOOLEAN和FALSE_BOOLEAN,我没有收到任何警告.
set1.contains(4) match {
case true => println("Element found")
case false => println("Element not found")
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个警告的原因,为什么它会消失true和false …
I am using openjdk:8-alpine for deploying Kafka Streams application. I am using Windowing and it crashes with below error:
Exception in thread "app-4a382bdc55ae-StreamThread-1" java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni94709417646402513.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/librocksdbjni94709417646402513.so)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78)
at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56)
at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64)
at org.rocksdb.RocksDB.<clinit>(RocksDB.java:35)
at org.rocksdb.Options.<clinit>(Options.java:22)
at org.apache.kafka.streams.state.internals.RocksDBStore.openDB(RocksDBStore.java:116)
at org.apache.kafka.streams.state.internals.Segment.openDB(Segment.java:43)
at org.apache.kafka.streams.state.internals.Segments.getOrCreateSegment(Segments.java:91)
at org.apache.kafka.streams.state.internals.RocksDBSegmentedBytesStore.put(RocksDBSegmentedBytesStore.java:100)
at org.apache.kafka.streams.state.internals.RocksDBSessionStore.put(RocksDBSessionStore.java:122)
at org.apache.kafka.streams.state.internals.ChangeLoggingSessionBytesStore.put(ChangeLoggingSessionBytesStore.java:78)
at org.apache.kafka.streams.state.internals.ChangeLoggingSessionBytesStore.put(ChangeLoggingSessionBytesStore.java:33)
at org.apache.kafka.streams.state.internals.CachingSessionStore.putAndMaybeForward(CachingSessionStore.java:177)
at org.apache.kafka.streams.state.internals.CachingSessionStore.access$000(CachingSessionStore.java:38)
at org.apache.kafka.streams.state.internals.CachingSessionStore$1.apply(CachingSessionStore.java:88)
at …Run Code Online (Sandbox Code Playgroud) apache-kafka docker rocksdb alpine-linux apache-kafka-streams
在Scala中,view允许阻止创建全新的集合。例如在Scala中,“视图”有什么作用?
JavaScript中有类似的东西吗?我的用例:
x = inputValue.split(",").map(x => x.trim()).filter(f1).map(f2)
Run Code Online (Sandbox Code Playgroud)
如您在上面的代码中看到的,将创建2个中间集合。JavaScript中有什么方法可以避免创建上述中间集合?
javascript functional-programming scala lazy-evaluation lazy-sequences
我正在尝试下面的例子来理解unapply,
class Emp(name: String, age: Int)
object Emp {
def apply(name: String, age: Int): Emp = new Emp(name, age)
def unapply(emp: Emp): Option[(String, Int)] = Some(emp.name, emp.age)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,失败,编译错误Cannot resolve symbol name,Cannot resolve symbol age.
然而,当我声明Emp为case类时,它完美地工作,没有任何编译错误.
有人可以解释这背后的原因吗?
注意:scalaVersion- 2.12.7