คำถามติดแท็ก scala

Scala เป็นภาษาการเขียนโปรแกรมที่ใช้งานทั่วไปโดยมีเป้าหมายหลักที่ Java Virtual Machine ออกแบบมาเพื่อแสดงรูปแบบการเขียนโปรแกรมทั่วไปในรูปแบบที่กระชับสง่างามและปลอดภัยในการใช้งาน คุณสมบัติที่สำคัญของมันคือ: ระบบประเภทคงที่ขั้นสูงที่มีการอนุมานประเภท; ประเภทฟังก์ชั่น รูปแบบจับคู่; พารามิเตอร์และการแปลงโดยนัย ผู้ประกอบการมากไป; การทำงานร่วมกันอย่างสมบูรณ์กับ Java; เห็นพ้องด้วย

4
วิธีการจัดเรียงรายการใน Scala ตามสองฟิลด์?
วิธีการจัดเรียงรายการใน Scala ตามสองฟิลด์ในตัวอย่างนี้ฉันจะจัดเรียงตาม lastName และ firstName? case class Row(var firstName: String, var lastName: String, var city: String) var rows = List(new Row("Oscar", "Wilde", "London"), new Row("Otto", "Swift", "Berlin"), new Row("Carl", "Swift", "Paris"), new Row("Hans", "Swift", "Dublin"), new Row("Hugo", "Swift", "Sligo")) rows.sortBy(_.lastName) ฉันลองสิ่งนี้ rows.sortBy(_.lastName + _.firstName) แต่มันไม่ได้ผล ดังนั้นฉันจึงอยากรู้วิธีแก้ปัญหาที่ดีและง่าย

8
ความเร็วในการคอมไพล์ Java เทียบกับความเร็วในการคอมไพล์ Scala
ฉันเขียนโปรแกรมใน Scala มาระยะหนึ่งแล้วและฉันก็ชอบ แต่สิ่งหนึ่งที่ฉันรำคาญคือเวลาที่ใช้ในการรวบรวมโปรแกรม ดูเหมือนจะเป็นเรื่องเล็กน้อย แต่ด้วย Java ฉันสามารถทำการเปลี่ยนแปลงเล็กน้อยในโปรแกรมของฉันคลิกปุ่ม run ใน netbeans และ BOOM มันทำงานและเมื่อเวลาผ่านไปการรวบรวมใน scala ดูเหมือนจะใช้เวลามาก ฉันได้ยินมาว่าด้วยโครงการขนาดใหญ่จำนวนมากภาษาสคริปต์มีความสำคัญมากเนื่องจากต้องใช้เวลาในการรวบรวมความต้องการที่ฉันไม่เห็นว่าเกิดขึ้นเมื่อฉันใช้ Java แต่ฉันมาจาก Java ซึ่งตามที่ฉันเข้าใจมันเร็วกว่าภาษาคอมไพล์อื่น ๆ และเร็วเพราะเหตุผลที่ฉันเปลี่ยนมาใช้ Scala (มันเป็นภาษาที่ง่ายมาก) ฉันจึงอยากถามว่าฉันจะทำให้ Scala คอมไพล์เร็วขึ้นได้ไหมและ scalac จะเร็วเท่า javac

2
เหตุใด "private val" และ "private final val" จึงแตกต่างกัน
ฉันเคยคิดแบบนั้นprivate valและprivate final valเหมือนกันจนกระทั่งฉันเห็นหัวข้อ 4.1 ใน Scala Reference: นิยามค่าคงที่เป็นรูปแบบ final val x = e โดยที่ e คือนิพจน์คงที่ (§6.24) ต้องมีตัวปรับแต่งขั้นสุดท้ายและไม่สามารถระบุคำอธิบายประกอบประเภทได้ การอ้างอิงถึงค่าคงที่ x ถือว่าเป็นนิพจน์คงที่ ในโค้ดที่สร้างขึ้นจะถูกแทนที่ด้วย e ด้านขวามือของนิยาม และฉันได้เขียนแบบทดสอบ: class PrivateVal { private val privateVal = 0 def testPrivateVal = privateVal private final val privateFinalVal = 1 def testPrivateFinalVal = privateFinalVal } javap …
101 scala  private  final 

6
วิธีตรวจสอบอินสแตนซ์ด้วย Scala (ทดสอบ)
ฉันกำลังพยายามรวม ScalaTest เข้ากับโปรเจ็กต์ Java ของฉัน แทนที่การทดสอบ JUnit ทั้งหมดด้วย ScalaTests มีอยู่ช่วงหนึ่งฉันต้องการตรวจสอบว่า Guice's Injector ฉีดถูกประเภทหรือไม่ ใน Java ฉันมีการทดสอบดังนี้: public class InjectorBehaviour { @Test public void shouldInjectCorrectTypes() { Injector injector = Guice.createInjector(new ModuleImpl()); House house = injector.getInstance(House.class); assertTrue(house.door() instanceof WoodenDoor); assertTrue(house.window() instanceof BambooWindow); assertTrue(house.roof() instanceof SlateRoof); } } แต่ฉันมีปัญหาในการทำเช่นเดียวกันกับ ScalaTest: class InjectorSpec extends …
101 java  scala  junit  scalatest 


14
วิธีโหลดไฟล์ในเครื่องใน sc.textFile แทน HDFS
ฉันกำลังติดตามบทแนะนำการจุดประกายที่ยอดเยี่ยม ดังนั้นฉันพยายามที่ 46m: 00s เพื่อโหลดREADME.mdแต่ล้มเหลวในสิ่งที่ฉันทำคือ: $ sudo docker run -i -t -h sandbox sequenceiq/spark:1.1.0 /etc/bootstrap.sh -bash bash-4.1# cd /usr/local/spark-1.1.0-bin-hadoop2.4 bash-4.1# ls README.md README.md bash-4.1# ./bin/spark-shell scala> val f = sc.textFile("README.md") 14/12/04 12:11:14 INFO storage.MemoryStore: ensureFreeSpace(164073) called with curMem=0, maxMem=278302556 14/12/04 12:11:14 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory …

4
ใครสามารถอธิบายวิธีใช้ SBT ที่ถูกต้องได้หรือไม่?
ฉันกำลังจะออกจากตู้ในเรื่องนี้! ฉันไม่เข้าใจ SBT ฉันบอกว่าตอนนี้ช่วยฉันด้วย ถนนทุกสายมุ่งสู่กรุงโรมและที่เป็นเหมือนกันสำหรับ SBT: การเริ่มต้นกับSBTมีSBT, SBT Launcher, SBT-extrasฯลฯ และจากนั้นก็มีวิธีการที่แตกต่างกันรวมและตัดสินใจเกี่ยวกับการเก็บ มีวิธีที่ 'ดีที่สุด' หรือไม่? ฉันถามเพราะบางครั้งฉันก็หลงทางนิดหน่อย เอกสาร SBT มีความละเอียดและสมบูรณ์มาก แต่ฉันพบว่าตัวเองไม่รู้ว่าควรใช้build.sbtหรือproject/build.propertiesหรือproject/Build.scalaหรือเมื่อproject/plugins.sbtใด แล้วมันจะสนุกขึ้นมีScala-IDEและSBT- วิธีที่ถูกต้องในการใช้ร่วมกันคืออะไร? อะไรมาก่อนไก่หรือไข่? ที่สำคัญที่สุดคือคุณจะหาที่เก็บและเวอร์ชันที่เหมาะสมเพื่อรวมไว้ในโครงการของคุณได้อย่างไร? ฉันแค่ดึงมีดพร้าออกมาและเริ่มแฮ็คทางไปข้างหน้าหรือไม่? ฉันมักจะพบโครงการที่มีทุกอย่างและอ่างล้างจานในครัวแล้วฉันก็รู้ว่า - ฉันไม่ใช่คนเดียวที่หลงทางนิดหน่อย เป็นตัวอย่างง่ายๆตอนนี้ฉันกำลังเริ่มโครงการใหม่ ฉันต้องการใช้คุณสมบัติล่าสุดของSLICKและScalaและอาจต้องใช้ SBT เวอร์ชันล่าสุด อะไรคือจุดเริ่มต้นที่ดีและเพราะเหตุใด ฉันควรกำหนดไฟล์ในไฟล์ใดและควรมีลักษณะอย่างไร ฉันรู้ว่าฉันสามารถทำงานนี้ได้ แต่ฉันต้องการความเห็นจากผู้เชี่ยวชาญว่าทุกอย่างควรไปที่ใด (ทำไมถึงควรไปที่นั่นจะได้รับโบนัส) ฉันใช้SBTสำหรับโครงการขนาดเล็กมานานกว่าหนึ่งปีแล้ว ผมใช้SBTแล้วSBT Extras(ตามที่มันทำให้ปวดหัวบางอย่างน่าอัศจรรย์หายไป) แต่ผมไม่แน่ใจว่าทำไมฉันควรจะใช้อย่างใดอย่างหนึ่งหรืออื่น ๆ ฉันรู้สึกหงุดหงิดเล็กน้อยที่ไม่เข้าใจว่าสิ่งต่าง ๆ เข้ากันได้อย่างไร ( SBTและที่เก็บ) และคิดว่ามันจะช่วยชายคนต่อไปที่ต้องเผชิญกับความยากลำบากอย่างมากหากสิ่งนี้สามารถอธิบายได้ในแง่ของมนุษย์
100 scala  sbt 

3
จับคู่คลาสเคสต่างๆใน scala
ฉันกำลังจับคู่กับคลาสเคสบางอย่างและต้องการจัดการสองเคสในลักษณะเดียวกัน สิ่งนี้: abstract class Foo case class A extends Foo case class B(s:String) extends Foo case class C(s:String) extends Foo def matcher(l: Foo): String = { l match { case A() => "A" case B(sb) | C(sc) => "B" case _ => "default" } } แต่เมื่อฉันทำสิ่งนี้ฉันได้รับข้อผิดพลาด: (fragment of test.scala):10: error: …

5
val-mutable กับ var-immutable ใน Scala
มีแนวทางใดบ้างใน Scala เกี่ยวกับเวลาที่จะใช้ val กับคอลเลกชันที่เปลี่ยนแปลงได้กับการใช้ var กับคอลเล็กชันที่ไม่เปลี่ยนรูปหรือไม่ หรือคุณควรมุ่งเป้าไปที่ val ด้วยคอลเลกชันที่ไม่เปลี่ยนรูป? ความจริงที่ว่ามีคอลเลกชันทั้งสองประเภททำให้ฉันมีทางเลือกมากมายและบ่อยครั้งที่ฉันไม่รู้ว่าจะเลือกอย่างไร

9
จะสร้าง DataFrame ที่ว่างเปล่าด้วยสคีมาที่ระบุได้อย่างไร?
ฉันต้องการสร้างDataFrameด้วยสคีมาที่ระบุใน Scala ฉันได้พยายามใช้การอ่าน JSON (ฉันหมายถึงการอ่านไฟล์เปล่า) แต่ฉันไม่คิดว่านั่นเป็นแนวทางปฏิบัติที่ดีที่สุด


5
JVM ป้องกันการเพิ่มประสิทธิภาพการโทรหางหรือไม่
ฉันเห็นคำพูดนี้ในคำถาม: ภาษาที่ใช้งานได้ดีในการสร้างบริการเว็บคืออะไร? โดยเฉพาะอย่างยิ่ง Scala ไม่รองรับการกำจัดหางโทรยกเว้นในฟังก์ชันเรียกซ้ำในตัวเองซึ่ง จำกัด ประเภทขององค์ประกอบที่คุณสามารถทำได้ (นี่เป็นข้อ จำกัด พื้นฐานของ JVM) นี่คือเรื่องจริง? ถ้าเป็นเช่นนั้น JVM ที่สร้างข้อ จำกัด พื้นฐานนี้คืออะไร?


4
Scala: อะไรคือความแตกต่างระหว่างลักษณะ Traversable และ Iterable ในคอลเล็กชัน Scala
ฉันได้ดูคำถามนี้แล้วแต่ยังไม่เข้าใจความแตกต่างระหว่างลักษณะที่สามารถทำซ้ำได้และลักษณะที่ผ่านได้ ใครช่วยอธิบายหน่อย

10
วิธีที่หรูหราในการกลับแผนที่ใน Scala
การเรียนรู้ Scala ในปัจจุบันและจำเป็นในการสลับแผนที่เพื่อทำการค้นหาคีย์กลับค่า ฉันกำลังมองหาวิธีง่ายๆในการทำสิ่งนี้ แต่มีเพียง: (Map() ++ origMap.map(kvp=>(kvp._2->kvp._1))) ใครมีแนวทางที่สง่างามกว่านี้?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.