當前位置: 首頁>>技術問答>>正文


Scala編程常見問題整理【四】

編者按: 本文從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/zh-tw/article/1557.html,未經允許,請勿轉載。