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

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

3
ความแตกต่างระหว่างสามวิธีในการกำหนดฟังก์ชันใน Scala
กำหนดสามวิธีในการแสดงฟังก์ชันเดียวกันf(a) := a + 1: val f1 = (a:Int) => a + 1 def f2 = (a:Int) => a + 1 def f3:(Int => Int) = a => a + 1 คำจำกัดความเหล่านี้แตกต่างกันอย่างไร? REPL ไม่ได้ระบุถึงความแตกต่างที่ชัดเจน: scala> f1 res38: (Int) => Int = <function1> scala> f2 res39: (Int) => Int = <function1> …
92 scala 

4
จะสร้างรายการที่มีองค์ประกอบเดียวกัน n-times ได้อย่างไร?
จะสร้างรายการที่มีองค์ประกอบเดียวกัน n-times ได้อย่างไร? การใช้งานด้วยตนเอง: scala> def times(n: Int, s: String) = | (for(i <- 1 to n) yield s).toList times: (n: Int, s: String)List[String] scala> times(3, "foo") res4: List[String] = List(foo, foo, foo) มีวิธีการทำแบบเดียวกันในตัวหรือไม่?
92 scala 

8
แปลงรายการทูเพิลเป็นแผนที่ (และจัดการกับคีย์ที่ซ้ำกัน?)
ฉันคิดเกี่ยวกับวิธีที่ดีในการแปลงรายการของ tuple กับคีย์ซ้ำลงในแผนที่[("a","b"),("c","d"),("a","f")] ("a" -> ["b", "f"], "c" -> ["d"])โดยปกติ (ใน python) ฉันจะสร้างแผนที่ว่างและ for-loop ในรายการและตรวจหาคีย์ที่ซ้ำกัน แต่ฉันกำลังมองหาวิธีแก้ปัญหาที่ชาญฉลาดและน่ากลัวมากกว่าที่นี่ btw ประเภทคีย์ - ค่าจริงที่ฉันใช้ที่นี่คือ(Int, Node)และฉันต้องการเปลี่ยนเป็นแผนที่(Int -> NodeSeq)
92 scala  map 

12
java.io.IOException: ไม่พบ null \ bin \ winutils.exe ที่ปฏิบัติการได้ในไบนารี Hadoop spark Eclipse บน windows 7
ฉันไม่สามารถเรียกใช้sparkงานง่ายๆในScala IDE(โครงการ Maven spark) ที่ติดตั้งบนWindows 7 เพิ่มการพึ่งพาหลักของ Spark val conf = new SparkConf().setAppName("DemoDF").setMaster("local") val sc = new SparkContext(conf) val logData = sc.textFile("File.txt") logData.count() ข้อผิดพลาด: 16/02/26 18:29:33 INFO SparkContext: Created broadcast 0 from textFile at FrameDemo.scala:13 16/02/26 18:29:34 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path …

3
จะสร้าง Uber JAR (Fat JAR) โดยใช้ SBT ภายใน IntelliJ IDEA ได้อย่างไร
ฉันใช้ SBT (ภายใน IntelliJ IDEA) เพื่อสร้างโครงการ Scala อย่างง่าย ฉันอยากทราบวิธีที่ง่ายที่สุดในการสร้างไฟล์Uber JAR (aka Fat JAR, Super JAR) ฉันกำลังใช้ SBT แต่เมื่อฉันส่งไฟล์ JAR ไปยังApache Sparkฉันได้รับข้อผิดพลาดต่อไปนี้: ข้อยกเว้นในเธรด "main" java.lang.SecurityException: การย่อยไฟล์ลายเซ็นไม่ถูกต้องสำหรับแอตทริบิวต์หลักของ Manifest หรือเกิดข้อผิดพลาดระหว่างเวลาคอมไพล์: java.lang.RuntimeException: ขจัดข้อมูลซ้ำซ้อน: พบเนื้อหาไฟล์ที่แตกต่างกันต่อไปนี้: PATH \ DEPENDENCY.jar: META-INF / DEPENDENCIES PATH \ DEPENDENCY.jar: META-INF / MANIFEST.MF มันดูเหมือนว่ามันเป็นเพราะบางส่วนของการอ้างอิงของฉันรวมถึงแฟ้มลายเซ็น (META-INF) ซึ่งจะต้องออกในรอบสุดท้าย JAR ไฟล์ Uber ฉันพยายามใช้ปลั๊กอินsbt-assemblyแบบนั้น: /project/assembly.sbt …

5
วิธีดูแผนผังการพึ่งพาใน sbt?
ฉันกำลังพยายามตรวจสอบแผนผังการพึ่งพา SBT ตามที่อธิบายไว้ในเอกสารประกอบ : sbt inspect tree clean แต่ฉันได้รับข้อผิดพลาดนี้: [error] inspect usage: [error] inspect [uses|tree|definitions] <key> Prints the value for 'key', the defining scope, delegates, related definitions, and dependencies. [error] [error] inspect [error] ^ เกิดอะไรขึ้น? ทำไม SBT ไม่สร้างต้นไม้?

10
จะกำหนดขนาดฮีปสำหรับ sbt ได้อย่างไร?
ฉันใช้ SBT 0.12.0 ฉันได้อ่านคำตอบอื่น ๆ เกี่ยวกับ stack overflow แล้วและปฏิบัติตาม แต่ไม่มีคำตอบใดที่ช่วยได้เช่น: สร้าง ForkRunคลาส - ฉันไม่ได้สังเกตเห็นกระบวนการแยกระหว่างการใช้งาน sbt ตั้งค่าตัวแปรสภาพแวดล้อมJAVA_OPTS- ถูกตั้งค่า แต่บรรทัดคำสั่งกระบวนการของ sbt ดูเหมือนจะไม่ใช้เลย sbt -J-Xmx2Gผนวกพารามิเตอร์เข้ากับบรรทัดคำสั่งกระบวนการ sbt อย่างไรก็ตามค่าเก่า-Xmx1536mถูกใช้โดย sbt แทนพารามิเตอร์ต่อท้าย ฉันพลาดอะไรไปรึเปล่า? ฉันจะตั้งค่าขนาดฮีปสำหรับ sbt 0.12 ได้อย่างไรเมื่อทำการทดสอบทั้งสองและrun?
92 scala  sbt 

4
ฉันจะรับเวอร์ชัน Scala จากภายใน Scala ได้อย่างไร
นี่ไม่เกี่ยวกับตัวเลือกคอมไพเลอร์บรรทัดคำสั่ง ฉันจะรับเวอร์ชัน Scala ภายในโค้ดโดยทางโปรแกรมได้อย่างไร หรืออีกวิธีหนึ่งปลั๊กอิน Eclipse Scala v2 เก็บพา ธ ไปที่scalacใด
91 scala  version 

2
ข้อผิดพลาดในการแบ่งคลาสกับ Joda Time โดยใช้ Scala
ฉันกำลังเพิ่มที่เก็บ Joda Time ใน SBT ด้วย libraryDependencies ++= Seq( "joda-time" % "joda-time" % "2.1" ) จากนั้นฉันก็ใช้มันอย่างสนุกสนานเช่นนี้: val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd") ymd.parseDateTime("20121212") แต่เมื่อฉันรวบรวมโครงการใน SBT ฉันได้รับสิ่งที่น่ารังเกียจ: [warn] Class org.joda.convert.FromString not found - continuing with a stub. [warn] Caught: java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class) [error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' …
91 scala  sbt  jodatime 

13
การตีความเกณฑ์มาตรฐานใน C, Clojure, Python, Ruby, Scala และอื่น ๆ [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ข้อจำกัดความรับผิดชอบ ฉันรู้ว่าเกณฑ์มาตรฐานเทียมนั้นชั่วร้าย พวกเขาสามารถแสดงผลลัพธ์สำหรับสถานการณ์แคบ ๆ ที่เฉพาะเจาะจงเท่านั้น ฉันไม่คิดว่าภาษาหนึ่งดีกว่าภาษาอื่นเพราะม้านั่งโง่ ๆ อย่างไรก็ตามฉันสงสัยว่าทำไมผลลัพธ์จึงแตกต่างกันมาก โปรดดูคำถามของฉันที่ด้านล่าง คำอธิบายเกณฑ์มาตรฐานคณิตศาสตร์ Benchmark คือการคำนวณทางคณิตศาสตร์อย่างง่ายเพื่อหาคู่ของจำนวนเฉพาะที่แตกต่างกันด้วย 6 (เรียกว่าsexy primes ) เช่น sexy primes ต่ำกว่า 100 จะเป็น:(5 11) (7 13) (11 17) (13 19) (17 23) (23 29) (31 37) (37 43) (41 47) (47 53) (53 …

19
ฉันจะแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีย่อยใน scala ได้อย่างไร
มีวิธี "scala-esque" ที่ดี (ฉันเดาว่าฉันหมายถึงฟังก์ชัน) ในการแสดงรายการไฟล์ซ้ำ ๆ ในไดเรกทอรีหรือไม่? แล้วการจับคู่รูปแบบเฉพาะล่ะ? ตัวอย่างเช่นเรียกซ้ำไฟล์ทั้งหมดที่ตรงกัน"a*.foo"ในc:\temp.
91 scala 

6
จะอ่านจากอินพุตมาตรฐานทีละบรรทัดได้อย่างไร?
สูตร Scala สำหรับการอ่านทีละบรรทัดจากอินพุตมาตรฐานคืออะไร? สิ่งที่เหมือนกับรหัสจาวาที่เทียบเท่า: import java.util.Scanner; public class ScannerTest { public static void main(String args[]) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ System.out.println(sc.nextLine()); } } }

4
การสืบทอดคลาสเคส Scala
ฉันมีแอปพลิเคชันที่ใช้ Squeryl ฉันกำหนดโมเดลของฉันเป็นคลาสเคสส่วนใหญ่เนื่องจากฉันสะดวกที่จะมีวิธีการคัดลอก ฉันมีสองรุ่นที่เกี่ยวข้องกันอย่างเคร่งครัด ฟิลด์เหมือนกันการดำเนินการหลายอย่างเหมือนกันและจะถูกเก็บไว้ในตาราง DB เดียวกัน แต่มีพฤติกรรมบางอย่างที่สมเหตุสมผลในหนึ่งในสองกรณีเท่านั้นหรือที่สมเหตุสมผลในทั้งสองกรณี แต่แตกต่างกัน จนถึงตอนนี้ฉันใช้คลาสเคสเดียวเท่านั้นโดยมีแฟล็กที่แยกแยะประเภทของโมเดลและเมธอดทั้งหมดที่แตกต่างกันตามประเภทของโมเดลเริ่มต้นด้วย if นี่เป็นเรื่องที่น่ารำคาญและไม่ค่อยปลอดภัย สิ่งที่ฉันต้องการจะทำคือแยกพฤติกรรมทั่วไปและฟิลด์ในคลาสเคสของบรรพบุรุษและให้โมเดลจริงทั้งสองสืบทอดมาจากโมเดลนั้น แต่เท่าที่ฉันเข้าใจการสืบทอดจากคลาสเคสนั้นขมวดอยู่ใน Scala และเป็นสิ่งต้องห้ามด้วยซ้ำหากคลาสย่อยนั้นเป็นคลาสเคส (ไม่ใช่เคสของฉัน) อะไรคือปัญหาและข้อผิดพลาดที่ฉันควรทราบในการสืบทอดจากคลาสเคส มันสมเหตุสมผลไหมในกรณีของฉันที่จะทำเช่นนั้น

3
เมื่อใดควรใช้ val หรือ def ในลักษณะ Scala?
ฉันกำลังดูสไลด์สกาลาที่มีประสิทธิภาพและกล่าวถึงในสไลด์ 10 ที่จะไม่ใช้valใน a traitสำหรับสมาชิกนามธรรมและใช้defแทน สไลด์ไม่ได้กล่าวถึงรายละเอียดว่าเหตุใดจึงใช้บทคัดย่อvalใน a traitจึงเป็นการต่อต้านรูปแบบ ฉันจะขอบคุณถ้ามีใครสามารถอธิบายแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการใช้ val vs def ในลักษณะสำหรับวิธีนามธรรมได้

11
ยกเลิกก่อนกำหนด
วิธีใดที่ดีที่สุดในการยุติการพับก่อนกำหนด เป็นตัวอย่างง่ายๆสมมติว่าฉันต้องการสรุปตัวเลขใน an Iterableแต่ถ้าฉันพบสิ่งที่ฉันไม่คาดคิด (พูดเป็นเลขคี่) ฉันอาจต้องการยุติ นี่เป็นการประมาณครั้งแรก def sumEvenNumbers(nums: Iterable[Int]): Option[Int] = { nums.foldLeft (Some(0): Option[Int]) { case (Some(s), n) if n % 2 == 0 => Some(s + n) case _ => None } } อย่างไรก็ตามวิธีการแก้ปัญหานี้ค่อนข้างน่าเกลียด (เช่นเดียวกับในกรณีที่ฉันทำก่อนหน้านี้และผลตอบแทน - มันจะสะอาดและชัดเจนกว่ามาก) และที่แย่ที่สุดก็คือมันข้ามผ่านการทำซ้ำทั้งหมดแม้ว่าจะเจอกับเลขที่ไม่ใช่คู่ก็ตาม . แล้วอะไรจะเป็นวิธีที่ดีที่สุดในการเขียนพับแบบนี้ซึ่งจะยุติก่อนเวลาอันควร? ฉันควรจะไปและเขียนสิ่งนี้ซ้ำหรือมีวิธีที่เป็นที่ยอมรับมากกว่านี้?

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