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

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

7
อะไรคือเหตุผลเบื้องหลังการมีวัตถุร่วมใน Scala
มีกรณีที่จำเป็นต้องใช้วัตถุร่วม (ซิงเกิลตัน) สำหรับคลาสหรือไม่? เหตุใดฉันจึงต้องการสร้างคลาสพูดFooและสร้างอ็อบเจ็กต์ที่แสดงร่วมด้วย

4
การตัดวิธีการคืนค่า null ใน Java ด้วย Option ใน Scala?
สมมติว่าฉันมีวิธีการsession.get(str: String): Stringแต่คุณไม่รู้ว่ามันจะส่งคืนสตริงหรือค่าว่างให้คุณเพราะมันมาจาก Java มีวิธีที่ง่ายกว่าในการรักษาสิ่งนี้ใน Scala แทนsession.get("foo") == nullหรือไม่? บางทีเวทย์มนตร์บางอย่างใช้ToOption(session.get("foo"))แล้วฉันสามารถรักษาด้วยวิธี Scala เช่น ToOption(session.get("foo")) match { case Some(_) =>; case None =>; }
107 java  scala  scala-option 

5
รูปแบบการออกแบบตามหน้าที่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ มีสำนวนการใช้งานมากมาย: monads แอพพลิเคชั่นลูกศร ฯลฯ พวกเขาได้รับการบันทึกไว้ในบทความต่างๆ แต่น่าเสียดายที่ฉันไม่รู้จักหนังสือหรือบทความใด ๆ ที่พวกเขาสรุปไว้ในที่เดียว (มีTypeclassopediaแต่มีจำนวนมาก ของพื้นที่ที่ไม่ครอบคลุม) ใครช่วยแนะนำบทความ / หนังสือที่ครอบคลุมได้ดีในที่เดียวและเรื่องไหนที่โปรแกรมเมอร์ที่มีทักษะระดับกลางใน FP สามารถเข้าถึงได้

1
หลีกเลี่ยงการรั่วไหลของหน่วยความจำด้วย Scalaz 7 zipWithIndex / group enumeratees
พื้นหลัง ตามที่ระบุไว้ในคำถามนี้ฉันใช้ Scalaz 7 วนซ้ำเพื่อประมวลผลสตรีมข้อมูลขนาดใหญ่ (กล่าวคือไม่มีขอบเขต) ในพื้นที่ฮีปคงที่ รหัสของฉันมีลักษณะดังนี้: type ErrorOrT[M[+_], A] = EitherT[M, Throwable, A] type ErrorOr[A] = ErrorOrT[IO, A] def processChunk(c: Chunk, idx: Long): Result def process(data: EnumeratorT[Chunk, ErrorOr]): IterateeT[Vector[(Chunk, Long)], ErrorOr, Vector[Result]] = Iteratee.fold[Vector[(Chunk, Long)], ErrorOr, Vector[Result]](Nil) { (rs, vs) => rs ++ vs map { case (c, …
106 scala  scalaz  iterate 

3
วิธีการกรองไม่มีรายการ [ตัวเลือก]?
ถ้าฉันมีList[Option[A]]ใน Scala มีสำนวนอย่างไรในการกรองNoneค่าออกไป วิธีหนึ่งคือใช้สิ่งต่อไปนี้: val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye")) someList.filter(_ != None) มีวิธี "สำนวน" มากกว่านี้ไหม? ดูเหมือนจะค่อนข้างง่าย
106 scala  option 

6
อะไรคือกฎที่แน่นอนเมื่อคุณสามารถละเว้นวงเล็บจุดวงเล็บปีกกา = (ฟังก์ชัน) ฯลฯ ได้
อะไรคือกฎที่แม่นยำเมื่อคุณสามารถละเว้น (ละเว้น) วงเล็บจุดวงเล็บปีกกา = (ฟังก์ชัน) ฯลฯ ได้ ตัวอย่างเช่น, (service.findAllPresentations.get.first.votes.size) must be equalTo(2). service เป็นวัตถุของฉัน def findAllPresentations: Option[List[Presentation]] votes ผลตอบแทน List[Vote] ต้องและจะมีฟังก์ชั่นทั้งสองรายละเอียด ทำไมฉันไปไม่ได้: (service findAllPresentations get first votes size) must be equalTo(2) เหรอ? ข้อผิดพลาดของคอมไพเลอร์คือ: "RestServicesSpecTest.this.service.findAllPresentations ประเภทตัวเลือก [รายการ [com.sharca.Presentation]] ไม่ใช้พารามิเตอร์" เหตุใดจึงคิดว่าฉันกำลังพยายามส่งผ่านพารามิเตอร์ เหตุใดฉันจึงต้องใช้จุดสำหรับการเรียกทุกวิธี ทำไมต้อง(service.findAllPresentations get first votes size)เท่ากันถึง (2) ส่งผลให้: "not found: value …
106 syntax  scala 

3
เมื่อใดควรใช้ตัวแสดงแทนโซลูชันการส่งข้อความเช่น WebSphere MQ หรือ Tibco Rendezvous
ฉันได้อ่านคำถามและคำตอบแล้วว่าการตัดสินใจในการออกแบบใดที่จะเป็นประโยชน์ต่อนักแสดงของสกาล่าแทนที่จะเป็น JMS . โดยปกติเราใช้โซลูชันการส่งข้อความที่มีมาหลายปีแล้ว: การใช้งาน JMS เช่น WebSphere MQ หรือ Apache ActiveMQ ใช้สำหรับการสื่อสารแบบจุดต่อจุดหรือ Tibco Rendevous สำหรับการส่งข้อความแบบหลายผู้รับ มีความเสถียรพิสูจน์แล้วและมีความพร้อมใช้งานและประสิทธิภาพสูง อย่างไรก็ตามการกำหนดค่าและการตั้งค่าดูซับซ้อนกว่าใน Akka มาก เมื่อใดและเหตุใดฉันจึงควรใช้ Akka ในบางกรณีที่ใช้ผลิตภัณฑ์ดังกล่าวข้างต้น - WebSphere MQ หรือ ActiveMQ - สำเร็จแล้ว เหตุใดฉันจึงควรพิจารณาใช้ Akka แทน WebSphere MQ หรือ Tibco RV ในโครงการในอนาคตของฉัน และเมื่อใดที่ฉันควรหลีกเลี่ยง Akka? มีความพร้อมใช้งานและประสิทธิภาพสูงเช่นเดียวกับโซลูชันอื่น ๆ หรือไม่? หรือเป็นความคิดที่ดีที่จะเปรียบเทียบ Akka กับตัวกลางการส่งข้อความอื่น ๆ ? อาจมีโซลูชันการส่งข้อความอื่นในสภาพแวดล้อม …
106 java  scala  jms  actor  akka 

7
Scala framework สำหรับ Rest API Server? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ เรากำลังคิดที่จะย้ายเซิร์ฟเวอร์ Rest API ของเรา (อยู่ในบริการเว็บบน Symfony PHP) ไปยัง Scala ด้วยเหตุผลหลายประการ: ความเร็วไม่มีค่าใช้จ่าย CPU น้อยรหัสน้อยความสามารถในการปรับขนาด ฯลฯ ฉันไม่รู้จัก Scala จนกระทั่งหลาย ๆ หลายวันก่อน แต่ฉันสนุกกับสิ่งที่ได้เรียนรู้ในวันนี้ด้วยหนังสือ Scala และบล็อกโพสต์และคำถามทั้งหมด (มันไม่ได้น่าเกลียดเท่าไหร่!) ฉันมีตัวเลือกดังต่อไปนี้: สร้างเซิร์ฟเวอร์ Rest API ตั้งแต่เริ่มต้น ใช้เฟรมเวิร์กเว็บ Scala เล็ก ๆ เช่นScalatra ใช้ลิฟท์ บางสิ่งที่ฉันจะต้องใช้: คำขอ HTTP, เอาต์พุต JSON, MySQL …
105 api  rest  scala  lift 

5
วิธีการแปลง java.util.List เป็นรายการ Scala
ฉันมีวิธี Scala นี้โดยมีข้อผิดพลาดด้านล่าง ไม่สามารถแปลงเป็นรายการ Scala def findAllQuestion():List[Question]={ questionDao.getAllQuestions() } ประเภทไม่ตรงกัน พบ: java.util.List[com.aitrich.learnware.model.domain.entity.Question]จำเป็น: scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]

5
การประกาศคลาสเคสสกาล่ามีข้อเสียอะไรบ้าง?
หากคุณกำลังเขียนโค้ดที่ใช้โครงสร้างข้อมูลที่สวยงามและไม่เปลี่ยนรูปจำนวนมากคลาสเคสดูเหมือนจะเป็นสิ่งที่มาจากสวรรค์ทำให้คุณได้รับสิ่งต่อไปนี้ทั้งหมดฟรีด้วยคีย์เวิร์ดเดียว: ทุกอย่างไม่เปลี่ยนรูปตามค่าเริ่มต้น Getters กำหนดโดยอัตโนมัติ การใช้งาน toString () ที่เหมาะสม สอดคล้องกับ () และ hashCode () อ็อบเจ็กต์ Companion ด้วยวิธี unapply () สำหรับการจับคู่ แต่อะไรคือข้อเสียของการกำหนดโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปเป็นคลาสเคส? มีข้อ จำกัด อะไรบ้างในชั้นเรียนหรือลูกค้า มีสถานการณ์ที่คุณควรเลือกคลาสที่ไม่ใช่เคสหรือไม่?
105 scala  case-class 



9
มีทางเลือกการจัดการทรัพยากรอัตโนมัติอะไรบ้างสำหรับ Scala
ฉันได้เห็นตัวอย่าง ARM (การจัดการทรัพยากรอัตโนมัติ) มากมายบนเว็บสำหรับ Scala ดูเหมือนว่าจะเป็นพิธีการที่ต้องเขียนเรื่องหนึ่งแม้ว่าส่วนใหญ่จะดูค่อนข้างเหมือนกัน ฉันได้เห็นตัวอย่างที่สวยเย็นโดยใช้ตแม้ว่า ไม่ว่าในกรณีใด ๆ รหัสจำนวนมากนั้นมีข้อบกพร่องประเภทใดประเภทหนึ่งดังนั้นฉันจึงคิดว่าควรมีการอ้างอิงที่นี่ใน Stack Overflow ซึ่งเราสามารถลงคะแนนเวอร์ชันที่ถูกต้องและเหมาะสมที่สุดได้

5
ทรัพยากรการเขียนโปรแกรมประเภท Scala
ตามคำถามนี้ , ระบบการพิมพ์ Scala เป็นทัวริงสมบูรณ์ มีทรัพยากรอะไรบ้างที่ช่วยให้ผู้มาใหม่สามารถใช้ประโยชน์จากพลังของการเขียนโปรแกรมระดับชนิดได้ นี่คือแหล่งข้อมูลที่ฉันพบจนถึงตอนนี้: เวทมนตร์ชั้นสูงของ Daniel Spiewak ในดินแดนสกาลา การเขียนโปรแกรมระดับประเภทของ Apocalisp ใน Scala HListของ Jesper แหล่งข้อมูลเหล่านี้ดีมาก แต่ฉันรู้สึกว่าขาดข้อมูลพื้นฐานและไม่มีรากฐานที่มั่นคงในการสร้าง ตัวอย่างเช่นมีคำแนะนำเกี่ยวกับประเภทคำจำกัดความที่ไหน ฉันสามารถดำเนินการประเภทใดได้บ้าง มีแหล่งข้อมูลเบื้องต้นที่ดีหรือไม่?
102 scala  types 

4
sbt สามารถดึงสิ่งประดิษฐ์การพึ่งพาจาก git ได้อย่างไร
ฉันเคยได้ยิน (และฉันรู้ว่าฉันเคยเห็นตัวอย่างด้วยเช่นกันถ้าฉันจำได้แค่ไหน) ที่sbtสามารถรับการอ้างอิงจาก git repo ฉันต้องการได้รับharrah / upจาก github พื้นที่เก็บข้อมูลไม่ได้ให้ไฟล์ JAR สิ่งประดิษฐ์ใด ๆ sbtเพียงแหล่งต้นไม้ที่มีการตั้งค่าที่จะสร้างขึ้นโดยใช้ กระบวนการที่ฉันจินตนาการคือsbtจะดาวน์โหลดแหล่งที่มา repo สร้างขึ้นจากนั้นใช้สิ่งนั้นเป็นสิ่งประดิษฐ์การพึ่งพา ฉันอาจจินตนาการว่าที่sbtจริงแล้วสามารถทำอะไรแบบนี้ได้ ได้หรือไม่? และถ้าเป็นเช่นนั้นอย่างไร?

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