Can all usages of forSome
be replaced by an equivalent usage of _
?, sorunun cevabını gördüm, ancak "forSome" yerine "_" nin kullanılamayacağı gerçek durumun ne olduğunu anlamadım.Gerçek örnek "ForSome" un tüm kullanımları eşdeğer kullanımı ile değiştirilebiliyor mu?
Varoluşçu tipleri dilin tam olarak desteklenen parçasıdır, ancak Scala Java türlerini erişirken pratikte bunlar öncelikli olarak: Bunu Programming in Scala kitapta okudum.
object Main { def main(args: Array[String]): Unit = { type Test = java.util.Collection[T] forSome { type T } val contents: Test = (new Wild).contents type Test2 = java.util.Collection[_] val contents2: Test2 = (new Wild).contents // foo((new Wild).contents2) // won't compile foo1((new Wild).contents2) foo1((new Wild).contents3) foo2((new Wild).contents3) } def foo(xs: java.util.Map[T, T] forSome { type T }) {} def foo1(xs: java.util.Map[_, _]) {} def foo2(xs: java.util.Map[_, _ <: java.lang.Number]) {} }
Java: Ben "ile "forSome" yerine başardı Her durumda
public class Wild { public Collection<?> contents() { return null; } public Map<?, ?> contents2() { return null; } public Map<?, ? extends Number> contents3() { return null; } }
_ Ben Scala projesini oluşturduktan ve buna Java biri başvurulan:
Scala ". Peki "forSome" gerekli olan gerçek durumlar nelerdir? Lütfen basit bir çalışma örneği sağlayın.
Teşekkür ederiz! Şimdilik açık. – user4298319