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

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

2
ความหมายของสัญลักษณ์ Build.scala,% และ %%
ฉันใหม่เพื่อเล่น! Framework 2.1 (เวอร์ชัน java) และไม่มีประสบการณ์กับสกาล่า ฉันไม่เข้าใจสิ่งที่เป็นและสิ่งที่ไม่%และ%%หมายถึงใน Build.scala ฉัน googled เกี่ยวกับพวกเขา แต่ไม่สามารถค้นหาความหมายของพวกเขา ในไฟล์ Build.scala ของฉันฉันมี: "org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final", "com.typesafe" %% "play-plugins-mailer" % "2.1" ทำไมบรรทัดแรกใช้สัญลักษณ์% เดียวและสองสัญลักษณ์หนึ่งใช้สองเปอร์เซ็นต์%%? สิ่งที่พวกเขาสำหรับ?

4
อะไรคือความแตกต่างระหว่าง =>, () => และหน่วย =>
ฉันพยายามที่จะเป็นตัวแทนของฟังก์ชั่นที่ไม่มีข้อโต้แย้งและคืนค่า (ฉันกำลังจำลองฟังก์ชั่น setTimeout ใน JavaScript ถ้าคุณต้องรู้) case class Scheduled(time : Int, callback : => Unit) ไม่ได้คอมไพล์โดยพูดว่าพารามิเตอร์ "` val 'อาจไม่ใช่ชื่อที่เรียก " case class Scheduled(time : Int, callback : () => Unit) คอมไพล์ แต่ต้องถูกเรียกใช้อย่างผิดปกติแทน Scheduled(40, { println("x") } ) ฉันต้องทำสิ่งนี้ Scheduled(40, { () => println("x") } ) สิ่งที่ใช้งานได้ก็คือ class Scheduled(time : Int, …
153 scala 

4
แลมบ์ดาใน Scala คืออะไรและมีประโยชน์อย่างไร?
บางครั้งฉันสะดุดเข้ากับสัญกรณ์กึ่งลึกลับของ def f[T](..) = new T[({type l[A]=SomeType[A,..]})#l] {..} ในโพสต์ในบล็อกของสกาล่าซึ่งให้ "เราใช้กลอุบายประเภทแลมบ์ดา" นั้น ในขณะที่ฉันมีสัญชาตญาณบางอย่างเกี่ยวกับเรื่องนี้ (เราได้รับพารามิเตอร์ประเภทไม่ระบุชื่อAโดยไม่ต้องทำให้เสียความหมายกับมันได้หรือไม่) ฉันไม่พบแหล่งที่มาที่ชัดเจนที่อธิบายถึงสิ่งที่ประเภทแลมบ์ดาหลอกลวงและสิ่งที่เป็นประโยชน์ มันเป็นแค่น้ำตาลซินแทคติคหรือมันเปิดมิติใหม่บางอย่าง?
152 scala  types 

23
ฉันจะเปลี่ยนประเภทคอลัมน์ใน DataFrame ของ Spark SQL ได้อย่างไร
สมมติว่าฉันกำลังทำสิ่งที่ชอบ: val df = sqlContext.load("com.databricks.spark.csv", Map("path" -> "cars.csv", "header" -> "true")) df.printSchema() root |-- year: string (nullable = true) |-- make: string (nullable = true) |-- model: string (nullable = true) |-- comment: string (nullable = true) |-- blank: string (nullable = true) df.show() year make model comment blank 2012 …

10
ทำไมฉันถึงใช้ Scala / Lift บน Java / Spring [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันรู้ว่าคำถามนี้เปิดอยู่เล็กน้อย แต่ฉันดู Scala / Lift แทน Java / Spring และฉันสงสัยว่าข้อดีที่แท้จริงที่ Scala / Lift มีอยู่นั้นคืออะไร จากมุมมองและประสบการณ์ของฉัน Java Annotations และ Spring ลดจำนวนการเข้ารหัสที่คุณต้องทำสำหรับแอปพลิเคชันให้น้อยที่สุด สกาลา / ลิฟท์ปรับปรุงตามนั้นหรือไม่?
151 java  spring  scala  lift 

2
ข้อ จำกัด ของประเภท Nat ในรูปแบบไม่มีรูปแบบ
ในรูปแบบไม่มีรูปแบบ Nat แสดงวิธีการเข้ารหัสตัวเลขธรรมชาติที่ระดับประเภท ใช้เป็นตัวอย่างสำหรับรายการขนาดคงที่ คุณสามารถทำการคำนวณในระดับประเภทเช่นผนวกรายการของNองค์ประกอบเข้ากับรายการKองค์ประกอบและกลับรายการที่ทราบเวลารวบรวมเพื่อให้มีN+Kองค์ประกอบ การเป็นตัวแทนนี้มีความสามารถในการแสดงจำนวนมากเช่น1000000หรือ 2 53หรือสิ่งนี้จะทำให้คอมไพเลอร์สกาล่าจะยอมแพ้?

5
ScalaTest ใน sbt: มีวิธีรันการทดสอบเดียวโดยไม่มีแท็กหรือไม่?
ฉันรู้ว่าการทดสอบเดียวสามารถวิ่งได้โดยวิ่งใน sbt testOnly *class -- -n Tag มีวิธีบอก sbt / scalatest เพื่อทำการทดสอบเดียวโดยไม่มีแท็กหรือไม่? ตัวอย่างเช่น: testOnly *class -- -X 2 มันจะหมายถึง "ทำการทดสอบครั้งที่สองในชั้นเรียนไม่ว่ามันจะเป็นอะไร" เรามีการทดสอบมากมายและไม่มีใครสนใจติดแท็กดังนั้นจึงมีวิธีเรียกใช้การทดสอบเดียวโดยไม่ต้องมีแท็กหรือไม่
150 scala  testing  sbt  scalatest 

28
คุณสมบัติที่ซ่อนอยู่ของสกาล่า
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือคุณสมบัติที่ซ่อนอยู่ของ Scala ที่นักพัฒนา Scala ทุกคนควรระวัง กรุณาซ่อนคุณสมบัติหนึ่งข้อต่อคำตอบ

8
วิธีการเก็บวัตถุที่กำหนดเองในชุดข้อมูล?
ตามที่แนะนำชุดข้อมูล Spark : ในขณะที่เราตั้งตารอ Spark 2.0 เราวางแผนการปรับปรุงที่น่าตื่นเต้นสำหรับชุดข้อมูลโดยเฉพาะ: ... Custom encoders - ในขณะที่เราสร้าง encoders อัตโนมัติสำหรับประเภทที่หลากหลายเราต้องการเปิด API สำหรับวัตถุที่กำหนดเอง และพยายามจัดเก็บประเภทที่กำหนดเองDatasetเพื่อนำไปสู่ข้อผิดพลาดต่อไปนี้เช่น: ไม่พบตัวเข้ารหัสสำหรับประเภทที่เก็บไว้ในชุดข้อมูล ประเภทดั้งเดิม (Int, String, ฯลฯ ) และประเภทผลิตภัณฑ์ (คลาสเคส) ได้รับการสนับสนุนโดยการนำเข้า sqlContext.implicits._ การสนับสนุนสำหรับซีเรียลไลซ์ประเภทอื่น ๆ จะถูกเพิ่มในรุ่นอนาคต หรือ: Java.lang.UnsupportedOperationException: ไม่พบตัวเข้ารหัสสำหรับ .... มีวิธีแก้ไขปัญหาอยู่หรือไม่? หมายเหตุคำถามนี้มีอยู่เป็นจุดเริ่มต้นสำหรับคำตอบ Community Wiki เท่านั้น โปรดอัปเดต / ปรับปรุงทั้งคำถามและคำตอบ

4
การใช้ตัวดำเนินการเปรียบเทียบในระบบจับคู่รูปแบบของ Scala
เป็นไปได้หรือไม่ที่จะเปรียบเทียบในการเปรียบเทียบโดยใช้ระบบจับคู่รูปแบบใน Scala ตัวอย่างเช่น: a match { case 10 => println("ten") case _ > 10 => println("greater than ten") case _ => println("less than ten") } คำสั่งกรณีที่สองนั้นผิดกฎหมาย แต่ฉันต้องการระบุ "เมื่อ a มากกว่า"

7
ทำไมคอมไพเลอร์ Scala ไม่อนุญาตให้โอเวอร์โหลดวิธีที่มีอาร์กิวเมนต์เริ่มต้น
ในขณะที่อาจมีกรณีที่ถูกต้องซึ่งวิธีการบรรทุกเกินพิกัดดังกล่าวอาจไม่ชัดเจนทำไมคอมไพเลอร์ไม่อนุญาตรหัสที่ไม่ชัดเจนในเวลารวบรวมหรือเวลาทำงาน? ตัวอย่าง: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) = a + b // This fails, too. Even if there is no position in the argument list, // where the types are the same. def foo(a: Int) …

4
เพราะเหตุใดตัวอย่างจึงไม่ได้รับการรวบรวมความแปรปรวน (ร่วมต้านและและ) จึงทำงานได้อย่างไร
การติดตามจากคำถามนี้มีใครช่วยอธิบายสิ่งต่อไปนี้ในสกาลา: class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } ฉันเข้าใจความแตกต่างระหว่าง+TและTในการประกาศประเภท (มันรวบรวมถ้าฉันใช้T) แต่แล้วเราจะเขียนคลาสที่ covariant ในพารามิเตอร์ประเภทของมันโดยไม่ต้องใช้วิธีการสร้างสิ่งที่ไม่มีใครเทียบได้อย่างไร ฉันสามารถมั่นใจได้ว่าต่อไปนี้เท่านั้นที่สามารถสร้างขึ้นด้วยตัวอย่างของT? class Slot[+T] (var some: Object){ def get() = { some.asInstanceOf[T] } } แก้ไข - ตอนนี้ลงไปที่ต่อไปนี้: abstract class _Slot[+T, V <: T] (var some: V) { def …

7
วิธีสร้างโครงการ SBT ด้วย IntelliJ Idea
ฉันเพิ่งเริ่มต้นด้วยการพัฒนา Scala / LiftWeb / Sbt และฉันต้องการนำเข้าโครงการ Sbt ใน IntelliJ Idea ที่จริงฉันจัดการเพื่อนำเข้าโครงการของฉันในสองวิธีที่แตกต่างกัน: 1) กับ Maven ฉันสร้างโครงการ Maven และยิ่งไปกว่านั้นฉันสร้างโครงการ Sbt ซึ่งฉันนำเข้าจาก IntelliJ ฉันสามารถเริ่มต้นได้อย่างง่ายดายหยุดเซิร์ฟเวอร์ท่าเทียบเรือและทำสิ่งอื่น ๆ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการทำสิ่งเดียวกันเพียงปราศจาก Maven นั่นทำให้ฉันไป 2) ด้วย Eclipse ดังนั้นฉันจึงสร้างโครงการ Sbt ใหม่ (ด้วยสคริปต์ที่ฉันเขียนเล็กน้อยกำหนดค่าโครงการ Sbt ให้เป็น WebProject) ฉันใช้ปลั๊กอิน sbt-eclipsify เพื่อ 'แปลง' โครงการสำหรับ Eclipse ซึ่งฉันก็นำเข้าใน IntelliJ (ซอร์สที่มีอยู่ -> eclipse) แต่ปัญหาเริ่มต้นที่นี่: ฉันไม่สามารถทำให้ปลั๊กอิน …
146 scala  intellij-idea  lift  sbt 

4
HLists ไม่มีอะไรมากไปกว่าการเขียนสิ่งที่ซับซ้อน
ฉันสนใจที่จะค้นหาว่ามีความแตกต่างอยู่ที่ใดและโดยทั่วไปแล้วเพื่อระบุกรณีการใช้งานที่เป็นที่ยอมรับซึ่ง HLists ไม่สามารถใช้งานได้ (หรือมากกว่าไม่ให้ผลประโยชน์ใด ๆ กับรายการปกติ) (ฉันรู้ว่ามี 22 (ฉันเชื่อว่า) TupleNในสกาล่าในขณะที่หนึ่งต้องการเพียง HList เดียว แต่นั่นไม่ใช่ความแตกต่างทางแนวคิดที่ฉันสนใจ) ฉันได้ทำเครื่องหมายคำถามสองสามข้อในข้อความด้านล่าง อาจไม่จำเป็นที่จะต้องตอบคำถามพวกเขามีจุดมุ่งหมายที่จะชี้ให้เห็นสิ่งที่ไม่ชัดเจนสำหรับฉันและเพื่อเป็นแนวทางในการสนทนาในบางทิศทาง แรงจูงใจ เมื่อเร็ว ๆ นี้ฉันเคยเห็นคำตอบสองสามข้อเกี่ยวกับ SO ที่ผู้คนแนะนำให้ใช้ HLists (เช่นที่จัดทำโดยShapeless ) รวมถึงคำตอบที่ถูกลบสำหรับคำถามนี้ มันก่อให้เกิดการสนทนานี้ซึ่งจะจุดประกายคำถามนี้ Intro ดูเหมือนว่าสำหรับฉันแล้ว hlists นั้นจะมีประโยชน์ก็ต่อเมื่อคุณรู้จำนวนองค์ประกอบและประเภทที่แม่นยำเท่านั้น จำนวนนั้นไม่สำคัญ แต่ดูเหมือนไม่น่าเป็นไปได้ที่คุณจะต้องสร้างรายการที่มีองค์ประกอบของชนิดที่แตกต่างกัน แต่เป็นที่รู้จักอย่างแน่นอนในแบบสแตติก แต่คุณไม่รู้จักหมายเลขของพวกเขาแบบคงที่ คำถามที่ 1:คุณสามารถเขียนตัวอย่างเช่นในวงได้หรือไม่? สัญชาตญาณของฉันคือการมี hlister ที่แม่นยำแบบคงที่พร้อมด้วยจำนวนองค์ประกอบที่ไม่รู้จักแบบคงที่ (โดยพลการสัมพันธ์กับลำดับชั้นของชั้นเรียนที่กำหนด) ไม่เข้ากัน HLists vs. Tuples ถ้านี่เป็นเรื่องจริงนั่นคือคุณรู้จำนวนและประเภทของคำถาม - คำถามที่ 2:ทำไมไม่ใช้ n-tuple? แน่นอนว่าคุณสามารถทำแผนที่และพับ …
144 scala  types  tuples  hlist  shapeless 

4
ทำความเข้าใจกับคำหลัก 'ประเภท' ใน Scala
ฉันยังใหม่กับสกาล่าและฉันไม่สามารถหาtypeคำหลักได้มากนัก ฉันพยายามเข้าใจว่านิพจน์ต่อไปนี้อาจหมายถึงอะไร: type FunctorType = (LocalDate, HolidayCalendar, Int, Boolean) => LocalDate FunctorType นามแฝงบางประเภท แต่มีความหมายว่าอะไร
144 scala  types 

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