如果为func
,则会产生错误-A value of type "Object" can't be returned from the function 'func' because it has a return type of 'B'.
为什么会特别出现此错误?难道不应该认为C()
和D()
都适合B
,从而使三元表达式的计算结果为B
的实例吗?如果不是,为什么三元表达式的计算结果是Object
,而不是A
的实例?使用常规条件语法(if
/else
)时不会出现此错误.
class A {}
class B {}
class C extends A implements B {}
class D extends A implements B {}
B func(bool b) => b ? C() : D();