程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 val object(arg) = object 为 arg 赋值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 val object(arg) = object 为 arg 赋值?

开发过程中遇到使用 val object(arg) = object 为 arg 赋值的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 val object(arg) = object 为 arg 赋值的解决方法建议,希望对你解决使用 val object(arg) = object 为 arg 赋值有所启发或帮助;

我正在关注关于 GraphQL 和 Sangria 的 this 教程。我想知道以下行

val JsObject(fIElds) = requestJsON

其中 requestJsONJsValue 的对象。这种分配 fIElds 的方式对我来说是新的,我的问题是,您是否可以命名该模式或向我提供有关此结构的教程的链接。

解决方法

这是 Extractor 模式,您可以在任意对象上实现 unapply 方法(如示例中所示)达到相同的结果。当您创建 case class 时,编译器会为您生成一个 unapply 方法,因此您可以执行以下操作:

case class Person(name : String,surname : String)
val person = Person("gianluca","aguzzi")
val Person(name,surName) = person
,

要知道的重要一点是,val 定义支持赋值左侧的 @H_801_30@Pattern,从而提供(功能的子集)模式匹配。 >

所以,你的例子相当于:

val fields = requestJSON match {
  case JsObject(foo) => foo
}

有关详细信息,请参阅 Scala Language Specification Section 4.1 @H_801_30@Value Declarations and Definitions。

因此,例如,如果您有一个列表 l,并且您想分配第一个元素和其余元素,您可以这样写

val x :: xs = l

或者,对于方法返回元组的相当常见的情况,您可以编写:

val (result1,result2) = foo()

大佬总结

以上是大佬教程为你收集整理的使用 val object(arg) = object 为 arg 赋值全部内容,希望文章能够帮你解决使用 val object(arg) = object 为 arg 赋值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。