QComboBox有两个信号,都叫currentIndexChanged; 一个传递所选项目的索引,另一个传递所选项目的文本.当我将这个信号连接到我的插槽时,有类似的东西self.myComboBox.currentIndexChanged.connect(self.mySlot)给了我一个索引.有没有办法可以使用新式信号来表明我想要返回的文字?
为什么以下编译?我知道AnyVal实例对应于底层主机系统中无法构造的东西,Null是所有引用类型的子类型,但不是值类型的子类型.我有一个AnyVal类型的布尔我给safeMapDifferent,但没有看到它如何满足这个约束U >: Null.
object MyMainScala extends App {
implicit class RichObject[T](o: T) {
def safeMap[U](method: T => U)(implicit ev: Null <:< U): U =
Option(o).flatMap(result => Option(method(result))).orNull
def safeMapDifferent[U >: Null](method: T => U): U =
Option(o).flatMap(result => Option(method(result))).orNull
}
override def main(args: Array[String]): Unit = {
val testSubject = new Object() {
def scalaBoolean: Boolean = ???
}
// println(testSubject.safeMap(_.scalaBoolean)) // If not commented, this will fail to compile as I expect.
println(testSubject.safeMapDifferent(_.scalaBoolean).getClass) // Why …Run Code Online (Sandbox Code Playgroud)