当前位置: 首页 > 知识库问答 >
问题:

isInstanceOf方法在Scala中是如何工作的?

寿子默
2023-03-14

我正在Scala 3中运行以下代码。x、 据我所知,它应该返回True,因为Int根据Scala文档扩展了AnyVal。

scala> val y = 20
val y: Int = 20

scala> y.isInstanceOf[AnyVal]
1 |y.isInstanceOf[AnyVal]
  |^^^^^^^^^^^^^^^^^^^^^^
  |cannot test if value of type Int is a reference of class Object

在Java中,下面的代码打印为true,这是可以理解的。

class A {}

public class HelloWorld {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a instanceof Object);
    }
}

共有1个答案

慕阳
2023-03-14

在Scala中,这通常使用match

例如,要检查y(转换为AnyVal)的类型,可以执行以下操作:

val y: Int = 20

val yAsAnyVal: AnyVal = y

yAsAnyVal match {
    case long: Long => println(s"Y is a Long! $long")
    case int: Int => println(s"Y is an Int! $int")
    case char: Char => println(s"Y is a Char! $char")
    case _ => println(s"Y is not a Long/Int/Char")
}

印刷品:

Y是整数!20

Scala 3:匹配表达式(语法)——https://docs.scala-lang.org/scala3/reference/changed-features/match-syntax.html

Scala 3:匹配表达式(示例)-https://docs.scala-lang.org/scala3/reference/changed-features/pattern-matching.html

 类似资料:
  • 我对下面代码片段中的方法感到困惑。 我的困惑在于以下几行。 什么是张量。view()函数的作用是什么?我在很多地方见过它的用法,但我不明白它是如何解释它的参数的。 如果我将负值作为参数赋给函数,会发生什么情况?例如,如果我调用,? 有人能用一些例子解释一下函数的主要原理吗?

  • //我在main方法的最后一行获得了一个IllegalStateException。这是为什么?我能知道这对.的工作原理吗

  • 我正在使用JSP、JSTL和Java servlet创建登录/注册页面,并且在servlet的doPost()方法中使用: 当用户从索引中输入无效的登录凭据时发出警报。jsp。 这是有效的,但我不知道为什么有效;以下是我的问题: > 据我所知,我正在将请求和响应对象转发到索引。但是jsp页面如何处理这些对象呢?它是一堆html,响应对象也会被修改,以便包含索引的所有html代码。jsp? 为什么g

  • 如果我使用,但和两个参数等于supplier,它就会运行。 如何使在方法中工作?

  • 我有Intellij-IDEA 13.1.2。[已编辑,以前是13.0.2]我使用scala-plugin。我正在尝试使用工作表来评估代码。 但我得到的只有两个错误: 更新:现在它在Intellij13.1.5、Scala Plugin0.41.2和Scala-2.10和2.11下都能正常工作

  • 这是我的代码 上面的代码给出了 如果我将用于理解的屈服值更改为则结果为 如果我将更改为