当前位置: 首页>>技术问答>>正文


Scala编程常见问题整理【四】

zhebie 技术问答 去评论

编者按: 本文从stackoverflow收集了Scala编程中的常见问题。基于google/baidu/bing翻译将问题议成了中文,希望在英语表达不地道(特别是中英文夹杂)的情况下,也能检索到优质内容入口。     Scala相关问题非常多,我们会陆续将这些问题做成专辑,分成多篇文章分别展现。本文是其中的第四篇内容。 注: 点击问题标题直达英文原版网站,点击 加速访问 ,可以通过本站加速器快速访问。


1. 在Scala中的两种方法:每个的用例是什么?[Scala] (Two ways of currying in Scala; what's the use-case for each?)

coding-style,currying

我在讨论关于多个参数列表在我维护的Scala风格指南。我已经认识到有两种方式的curry,我想知道的用例是什么:def ...

2. 混淆与forMap理解为flatMap / Map转换[Scala] (Confused with the for-comprehension to flatMap/Map transformation)

map,monads,for-comprehension

我真的没有理解Map和FlatMap。我不明白是一个for-comprehension是一个嵌套调用的一系列map和flatMap。以下示例来自...

3. 如何类型动态工作,如何使用它?[Scala] (How does type Dynamic work and how to use it?)

scala

我听说有了动态它是可以在Scala动态打字。但我不能想象这可能是什么样子或如何工作。我发现一个人可以继承trait动态...

4. 在Scala中,多个参数列表和每个列表的多个参数有什么区别?[Scala] (What's the difference between multiple parameters lists and multiple parameters per list in Scala?)

currying,partial-application

在Scala中,可以写这样的函数:curryFunc(arg1:Int)(arg2:String)= {...}上面的curriedFunc函数定义与两个参数有什么区别?

5. Java VM上的内存屏障和编码风格[Scala] (Memory barriers and coding style over a Java VM)

javaconcurrency

假设我有一个静态复杂对象,它由线程池定期更新,并在长时间运行的线程中持续读取。对象本身总是不变的和...

6. Eclipse,Android,Scala使容易,但仍然不工作[Scala] (Eclipse, Android, Scala made easy but still does not work)

android,eclipse

我最近采用了一种使用Scala和Eclipse的编程方式,这减少了代码和编译时间,而不使用Proguard或Treeshake.Following这篇文章,我应该能够...

7. 我想在运行时获取变量的类型[Scala] (I want to get the type of a variable at runtime)

reflection

我想在运行时获取一个变量的类型。我该怎么做?

8. 为什么“私有val”和“私有最终val”不同?[Scala] (Why are `private val` and `private final val` different?)

private,final

我习惯认为私有val和私有的最终val是相同的,直到我看到Scala第4.1节参考:常量值定义是formfinal val x = e其中e是一个常量...

9. `#`运算符在Scala中是什么意思?[Scala] (What does the `#` operator mean in Scala?)

type-systems

我在这个博客中看到这个代码:Scala中的类型级编程://定义抽象类型和boundstrit Recurse {type Next <:Recurse //这是递归函数定义类型...

10. 什么是Scala注释以确保尾递归函数被优化?[Scala] (What is the Scala annotation to ensure a tail recursive function is optimized?)

tail-call-optimization

我认为有@tailrec注释,以确保编译器将优化尾递归函数。你只是把它放在声明的前面?如果Scala在脚本中使用,它也工作...

11. 何时在Scala方法声明中使用等号?[Scala] (When to use the equals sign in a Scala method declaration?)

scala

用等号表示:object HelloWorld {def main(args:Array [String])= {println(“Hello! !“)...

12. 如何打印RDD的内容?[Scala] (How to print the contents of RDD?)

apache-spark

我试图打印集合的内容到Spark控制台。我有一个类型:linesWithSessionId:org.apache.spark.rdd.RDD [String] = FilteredRDD [3]我使用命令:scala> .. 。

13. Scala是否支持尾递归优化?[Scala] (Does Scala support tail recursion optimization?)

performancetail-recursion

Scala是否支持尾递归优化?

14. 在Apache Spark 1.3中将数据列附加到数据框[Scala] (Append a column to Data Frame in Apache Spark 1.3)

apache-spark,dataframe

是可能的,什么是最有效的整洁方法添加列到数据框架?更具体地,列可以用作现有数据帧的行ID。在简化的情况下,...

15. 如何在Scala上对泛型类型进行模式匹配?[Scala] (How to pattern match on generic type in Scala?)

pattern-matching,type-erasure

让我们假设我们有一个通用类Container:case class Container [+ A](value:A)然后我们要模式匹配一个容器与一个Double和一个容器任何:val double = Container(3.3)var ...

16. 我可以得到一个编译时列表的所有case对象从密封的父母在Scala派生?[Scala] (Can I get a compile-time list of all of the case objects which derive from a sealed parent in Scala?)

scala

正如已经讨论过许多次在SO,Scala匹配将警告你,如果你不详尽列出所有类型从密封类派生。我想要的是一个编译时生成的Iterable的...

17. 如何将Scala traits编译成Java字节码?[Scala] (How are Scala traits compiled into Java bytecode?)

bytecode

我已经玩过Scala一段时间了,我知道traits可以作为Scala相当于接口和抽象类。如何将traits编译成Java字节码?I ...

18. val和对象在一个scala类中?[Scala] (val and object inside a scala class?)

class,object

在一个scala类中声明一个字段为val,lazy val和object之间有什么区别,如下面的代码片段所示:class Aclass B {val a1 = new A {def foo = 1} object a2 ...

19. 需要澄清Scala字面标识符(反引号)[Scala] (Need clarification on Scala literal identifiers (backticks))

scala

阅读Scala中的编程第二版和我遇到了这个:字面标识符“这个想法是,你可以把任何字符串,被运行时接受作为标识符在反引号”我不...

20. 为什么单例对象更加面向对象?[Scala] (Why are singleton objects more object-oriented?)

scala

在Scala编程:一个全面的分步指南中,作者说:Scala比Java更面向对象的一种方法是,Scala中的类不能有静态成员。 ... ...

21. 最简单的方法来获得Scala Iterable的前n个元素[Scala] (Simplest way to get the top n elements of a Scala Iterable)

algorithm

是否有一个简单而有效的解决方案来确定Scala Iterable的前n个元素?我的意思是likeiter.toList.sortBy(_。myAttr).take(2),但不必排序所有元素时...

22. 在Play2 scala模板中声明变量[Scala] (Declare variable in a Play2 scala template)

htmltemplates,playframework,playframework-2.0

你如何声明和初始化一个变量在Play2 Scala模板本地使用?我有这样:@var title:String =“Home”声明在模板的顶部,但它给我这个错误:...

23. Scala中的右关联方法有什么好处?[Scala] (What good are right-associative methods in Scala?)

operators,order-of-operations

我刚刚开始使用Scala,我只是了解了如何使方法成为右关联(而不是传统的左相关性在命令对象中常见的...。

24. 运行Java给出“错误:无法打开`C: Program Files Java jre6 lib amd64 jvm.cfg'”[Scala] (Running Java gives “Error: could not open `C:Program FilesJavajre6libamd64jvm.cfg'”)

java

经过多年的工作正常,我突然得到这个消息,当试图启动JVM:错误:无法打开`C: Program Files Java jre6 lib amd64 jvm.cfg'我试图卸载,并得到一个 ...

25. 元组参数声明和赋值奇偶性[Scala] (Tuple parameter declaration and assignment oddity)

syntaxtuples

我可以分配一个元组如下:var(min,max)=(1,2)但是我不能重新分配如下(min,max)=(1,3)预期但'='foundInstead我似乎必须做:min = ...

26. Spark从一行中提取值[Scala] (Spark extracting values from a Row)

apache-spark,apache-spark-sql

我有以下dataframeval transactions_with_counts = sqlContext.sql(“”“SELECT user_id AS user_id,category_id AS category_id,COUNT(category_id)FROM transactions GROUP BY user_id,...

27. 如果Int不能为null,null.asInstanceOf [Int]是什么意思?[Scala] (If an Int can't be null, what does null.asInstanceOf[Int] mean?)

null

作为测试,我写了这段代码:object Ambig extends App {def f(x:Int){println(“Int”)} def f(x:String){println(“String”)} f(null.asInstanceOf [ Int])f(null.asInstanceOf [...

28. Spark中的分层抽样[Scala] (Stratified sampling in Spark)

apache-spark

我有包含用户和购买数据的数据集。这里是一个例子,其中第一个元素是userId,第二个是productId,第三个是布尔值。 (2147481832,23355149,1)(2147481832,...

29. 何时在Scala中缀表示法中使用括号[Scala] (When to use parenthesis in Scala infix notation)

dictionary,functional-programming,parentheses,infix-notation

当在Scala中编程时,我做的越来越多的功能性东西。但是,当使用中缀符号时,很难告诉你什么时候需要括号和什么时候不用。例如下面的...

30. 在Scala中打印数组[Scala] (Printing array in Scala)

arrays

我有问题与最基本的Scala操作,它使我疯了。a = Array(1,2,3)println(a)和结果是[I @ 1e76345println(a.toString())和结果是[我@ 1e76345println(a ....

31. 解决Apache Spark中的依赖性问题[Scala] (Resolving dependency problems in Apache Spark)

javamaven,apache-spark,sbt

构建和部署Spark应用程序时常见的问题是:java.lang.ClassNotFoundException.object x不是软件包y编译的成员errors.java.lang.NoSuchMethodErrorHow ...

32. 如何扩展Scala列表以启用切片不是通过显式位置,而是通过给定的谓词/条件[Scala] (How to extend a Scala list to enable slicing not by explicit position but by given predicate/condition)

listcollections,slice

对于trait Itemcase类TypeA(i:Int)extends Itemcase类TypeB(i:Int)extends Itemconsider一个Scala项目列表,如var myList = List(TypeA(1),TypeB(11),TypeB(12),...

33. Scala编程为Android[Scala] (Scala Programming for Android)

androidresources

我已经跟随教程在Scala和Android与Scala 2.7.3最终。生成的Android应用程序工程,但即使最基本的应用程序需要几分钟(!)编译和需要900 kb ...

34. Scala 2.8系列设计教程[Scala] (Scala 2.8 collections design tutorial)

tutorials,scala-2.8,scala-collections

接下来我的呼吸困惑,什么是一些好的资源,解释了如何构建新的Scala 2.8集合库。我有兴趣找到一些信息,如何...

35. 流VS视图vs迭代器[Scala] (Stream vs Views vs Iterators)

scala-collections

scala中的Streams,Views(SeqView)和迭代器有什么区别?这是我的理解:他们都是懒惰的lists.Streams缓存的values.Iterators只能使用一次?您可以'...

36. 函数式编程,Scala map和fold left [关闭][Scala] (Functional programming, Scala map and fold left [closed])

map,functional-programming,fold

什么是一些好的教程折叠左?原来的问题,从删除恢复以提供上下文其他答案:我试图实现一个方法,找到矩形框,...

37. 是异步jdbc调用吗?[Scala] (Is asynchronous jdbc call possible?)

javajdbc,asynchronous,nonblocking

我想知道是否有一种方法来异步调用数据库?例如,假设我有一个大的请求需要很长的时间来处理,我想发送请求并接收...

38. 如何使用没有硬编码的Cake模式来执行依赖注入?[Scala] (How do you do dependency injection with the Cake pattern without hardcoding?)

scala

我只是阅读和享受蛋糕模式的文章。但是,在我看来,使用依赖注入的一个主要原因是,您可以更改XML文件或...使用的组件...

39. 懒惰的val是什么?[Scala] (What does a lazy val do?)

lazy-evaluation

我注意到,Scala提供惰性vals。但是我不能得到他们的工作.scala> val x = 15x:Int = 15scala> lazy val y = 13y:Int = <lazy> scala> xres0:Int = 15scala> yres1:...

40. 如何使用Scala中的正则表达式匹配模式?[Scala] (How to pattern match using regular expression in Scala?)

regexpattern-matching

我想找到一个单词的第一个字母和一个组中的一个字母之间的匹配,如“ABC”。在伪代码中,这可能看起来像:case Process(word)=> ...

41. 在Scala中使用reify(获取一个AST)表达式的最简单的方法是什么?[Scala] (What's the easiest way to use reify (get an AST of) an expression in Scala?)

macros,scala-2.10

我正在寻找替代-print或javap作为一种了解Scala中编译器正在做什么的方法。有了新的反射/宏库,reify似乎是一个很好的候选人,如图所示。

42. 使用简单构建工具(sbt)和IntelliJ调试Scala代码[Scala] (Debugging Scala code with simple-build-tool (sbt) and IntelliJ)

intellij-idea,jetty,sbt

使用IntelliJ的内置调试器调试由sbt管理的Scala代码最简单的方法是什么?来自sbt的google代码网站的“RunningSbt”的文档列出了运行主类的命令...

43. 使用Either来处理Scala代码中的故障[Scala] (Using Either to process failures in Scala code)

functional-programming,either

选项monad是一个伟大的表达方式来处理在Scala中的东西或无关的东西。但是,如果在“没有”发生时需要记录消息怎么办?根据Scala API文档,The ...

44. Any,AnyVal,AnyRef,Object之间的关系是什么?当在Java代码中使用时,它们如何映射?[Scala] (What are the relationships between Any, AnyVal, AnyRef, Object and how do they map when used in Java code?)

scala

我通常最后尝试每个组合,直到它编译。有人可以解释我应该在哪里使用?

45. Scala宏:在Scala中的类的字段制作一张地图[Scala] (Scala Macros: Making a Map out of fields of a class in Scala)

case-class,scala-macros

让我们说,我有很多类似的数据类。下面是一个示例类User,定义如下:case class User(name:String,age:Int,posts:List [String]){val numPosts:Int = ...

46. 将jar添加到Spark作业 - spark-submit[Scala] (Add jars to a Spark Job - spark-submit)

javaapache-spark

True ...它已经讨论了很多。但是有很多歧义和一些答案提供...包括重复的jar引用在jar / executor /驱动程序配置或...

47. Scala中==和.equals之间的区别是什么?[Scala] (Whats the difference between == and .equals in Scala?)

scala-java-interop

在Scala中==和.equals()之间有什么区别,什么时候使用它?实现与Java中的相同?EDIT:相关的问题谈论AnyVal的具体情况。更多...

48. Scala中的有效标识符字符[Scala] (Valid identifier characters in Scala)

operators

有一件事我发现很混乱是知道哪些字符和组合我可以在方法和变量名称中使用。 for instance#^ = 1 // legalval#= 1 // illegalval + = 1 // legalval&...

49. <:<scala中的运算符[Scala] (<:< operator in scala)

scala

任何人都可以在scala中提供有关<:<operator>的一些细节。我认为:if(apple <:<fruit)//检查苹果是否是水果的子类。有没有其他解释?我看到很多...

50. 动态混合在一个trait[Scala] (Mixing in a trait dynamically)

mixins,case-class,traits

有一个traittrait Persisted {def id:Long}如何实现一个方法接受任何case类的实例,并返回其副本与trait混合?方法的签名...

本文由《纯净的天空》出品。文章地址: https://vimsky.com/article/1557.html,未经允许,请勿转载。