class Foo[+A]
class Bar[-A]
class Test1[A] {
def piyo(a: A): Unit = ??? // OK
def poyo(a: Foo[A]): Unit = ??? // OK
def puyo(a: Bar[A]): Unit = ??? // OK
def paya(): A = ??? // OK
def poya(): Foo[A] = ??? // OK
def puya(): Bar[A] = ??? // OK
}
class Test2[+A] {
def piyo(a: A): Unit = ??? // NG
def poyo(a: Foo[A]): Unit = ??? // NG
def puyo(a: Bar[A]): Unit = ??? // OK
def paya(): A = ??? // OK
def poya(): Foo[A] = ??? // OK
def puya(): Bar[A] = ??? // NG
}
class Test3[-A] {
def piyo(a: A): Unit = ??? // OK
def poyo(a: Foo[A]): Unit = ??? // OK
def puyo(a: Bar[A]): Unit = ??? // NG
def paya(): A = ??? // NG
def poya(): Foo[A] = ??? // NG
def puya(): Bar[A] = ??? // OK
}
Last active
November 16, 2022 03:12
-
-
Save gakuzzzz/d8d6069d28825fb7d04a46992f94b90b to your computer and use it in GitHub Desktop.
Scala variance sample
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment