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

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


4
Akka Kill vs. Stop vs. Poison Pill?
คำถาม Newbie ของ Akka - ฉันกำลังอ่านเกี่ยวกับ Akka Essentials มีใครช่วยอธิบายความแตกต่างระหว่าง Akka Stop / Poison Pill vs. Kill ได้ไหม? หนังสือเล่มนี้มีคำอธิบายเล็ก ๆ น้อย ๆ "ยาฆ่าแบบซิงโครนัสกับยาพิษเป็นแบบอะซิงโครนัส" แต่ในทางใด นักแสดงหัวข้อที่โทรเข้าล็อคในช่วงเวลานี้หรือไม่? นักแสดงเด็กได้รับแจ้งระหว่างการฆ่าโพสต์ - หยุด envoked ฯลฯ ? ตัวอย่างการใช้แนวคิดหนึ่งกับอีกแนวคิดหนึ่ง? ขอบคุณมาก!
212 scala  akka 

5
วิธีโคลนอินสแตนซ์คลาสของเคสและเปลี่ยนเพียงหนึ่งฟิลด์ใน Scala ได้อย่างไร
สมมติว่าฉันมีคลาสเคสที่แสดงถึงตัวบุคคลผู้ใช้บนเครือข่ายโซเชียลต่างๆ อินสแตนซ์ของคลาสนั้นไม่เปลี่ยนแปลงอย่างสมบูรณ์และถูกจัดเก็บไว้ในคอลเลกชันที่ไม่เปลี่ยนรูปแบบซึ่งจะได้รับการแก้ไขในที่สุดโดยนักแสดง Akka ตอนนี้ฉันมีคลาสเคสที่มีหลายฟิลด์และฉันได้รับข้อความแจ้งว่าต้องอัปเดตหนึ่งในฟิลด์ดังนี้: case class Persona(serviceName : String, serviceId : String, sentMessages : Set[String]) // Somewhere deep in an actor val newPersona = Persona(existingPersona.serviceName, existingPersona.serviceId, existingPersona.sentMessages + newMessage) สังเกตุฉันต้องระบุทุกฟิลด์แม้ว่าจะมีการเปลี่ยนแปลงเพียงครั้งเดียว มีวิธีการโคลน Persona ที่มีอยู่และแทนที่เพียงหนึ่งฟิลด์โดยไม่ระบุฟิลด์ทั้งหมดที่ไม่เปลี่ยนแปลงหรือไม่ ฉันสามารถเขียนเป็นคุณลักษณะและใช้สำหรับคลาสเคสทั้งหมดของฉันได้หรือไม่? ถ้า Persona เป็นอินสแตนซ์ที่เหมือนกับแผนที่มันจะง่ายมาก
208 scala 

5
รับรายการในรายการใน Scala หรือไม่
คุณจะได้รับเพียงแค่องค์ประกอบที่ดัชนีฉันจากรายการในสกาล่าในโลกได้อย่างไร ฉันพยายามget(i)และ [i]- ไม่มีอะไรทำงาน Googling คืนค่าวิธีการ "ค้นหา" องค์ประกอบในรายการเท่านั้น แต่ฉันรู้ดัชนีขององค์ประกอบแล้ว! นี่คือรหัสที่ไม่ได้รวบรวม: def buildTree(data: List[Data2D]):Node ={ if(data.length == 1){ var point:Data2D = data[0] //Nope - does not work } return null } การดูรายการ List APIไม่ได้ช่วยเพราะดวงตาของฉันเพิ่งผ่านไป
205 scala 

4
<: <, <% <, และ =: = หมายถึงอะไรใน Scala 2.8 และเอกสารเหล่านั้นอยู่ที่ไหน
ฉันเห็นได้ในเอกสาร API สำหรับPredefว่าเป็นประเภทย่อยของประเภทฟังก์ชันทั่วไป (จาก) =&gt; ถึง แต่นั่นคือทั้งหมดที่กล่าว เอ่ออะไรนะ? อาจมีเอกสารอยู่บ้าง แต่เครื่องมือค้นหาไม่จัดการ "ชื่อ" เช่น "&lt;: &lt;" ดีมากดังนั้นฉันจึงไม่สามารถค้นหาได้ คำถามติดตามผล: เมื่อใดที่ฉันควรใช้สัญลักษณ์ / คลาสขี้ขลาดเหล่านี้และทำไม

6
เมื่อใดที่ฉันควรเลือก Vector ใน Scala
ดูเหมือนว่าVectorจะมาช้าไปงานปาร์ตี้คอลเล็กชั่น Scala และโพสต์บล็อกที่มีอิทธิพลทั้งหมดได้ออกไปแล้ว ใน Java ArrayListเป็นคอลเลกชันเริ่มต้น - ฉันอาจใช้LinkedListแต่เมื่อฉันคิดว่าผ่านอัลกอริทึมและดูแลเพียงพอที่จะปรับให้เหมาะสม ใน Scala ฉันควรจะใช้Vectorเป็นค่าเริ่มต้นของฉันSeqหรือพยายามหาเวลาListที่เหมาะสมกว่าจริงหรือไม่


4
JavaConverters และ JavaConversions ใน Scala แตกต่างกันอย่างไร
ในscala.collectionมีสองวัตถุที่คล้ายกันมากและJavaConversionsJavaConverters ความแตกต่างระหว่างวัตถุทั้งสองนี้คืออะไร? ทำไมพวกเขาทั้งสองอยู่? เมื่อใดที่ฉันต้องการใช้หนึ่งกับอื่น ๆ

7
ความแตกต่างระหว่าง foldLeft และลด leeft ใน Scala
ฉันได้เรียนรู้ความแตกต่างพื้นฐานระหว่างfoldLeftและreduceLeft foldLeft: ค่าเริ่มต้นจะต้องถูกส่งผ่าน reduceLeft: ใช้องค์ประกอบแรกของการรวบรวมเป็นค่าเริ่มต้น พ่นข้อยกเว้นถ้าคอลเลกชันว่างเปล่า มีความแตกต่างอื่น ๆ อีกไหม? เหตุผลใดที่มีสองวิธีที่มีฟังก์ชั่นคล้ายกัน

18
มีกรอบเว็บของ Scala อะไรบ้าง? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเพิ่งเริ่มเรียนรู้สกาล่าและสิ่งแรกที่ฉันจะนำไปใช้คือเว็บแอปพลิเคชั่นขนาดเล็ก ฉันใช้Erlangเมื่อปีที่แล้วเพื่อใช้ซอฟต์แวร์ฝั่งเซิร์ฟเวอร์ แต่ฉันไม่เคยเขียนเว็บแอปพลิเคชันมาก่อน มันจะเป็นประสบการณ์ที่ยอดเยี่ยม มีเว็บกรอบสำหรับ Scala ยกเว้นสำหรับลิฟท์ ? อย่าเข้าใจฉันเลยลิฟท์ดูยอดเยี่ยมมาก ฉันแค่อยากรู้ว่ามีกรอบจำนวนเท่าใดเพื่อที่ฉันจะได้เลือกระหว่างพวกเขา เป็นเรื่องที่ดีเสมอที่จะมีทางเลือก แต่สิ่งเดียวที่ฉันพบคือลิฟต์

4
`: _ *` (เครื่องหมายขีดเส้นใต้ของลำไส้ใหญ่) ทำอะไรในสกาลา?
ฉันมีรหัสต่อไปนี้จากคำถามนี้ : def addChild(n: Node, newChild: Node) = n match { case Elem(prefix, label, attribs, scope, child @ _*) =&gt; Elem(prefix, label, attribs, scope, child ++ newChild : _*) case _ =&gt; error("Can only add children to elements!") } ทุกอย่างในนั้นค่อนข้างชัดเจนยกเว้นงานชิ้นนี้: child ++ newChild : _* มันทำอะไร? ฉันเข้าใจว่ามีการSeq[Node]ต่อกันกับผู้อื่นNodeแล้วใช่ไหม อะไร: _*ทำอย่างไร


2
Scala ที่เทียบเท่ากับวัตถุ Java java.lang.Class <T>
ตัวอย่างคำถามอธิบายได้ดีที่สุดโดย: ใน Java สำหรับ JPA EntityManager ฉันสามารถทำสิ่งต่อไปนี้ได้ (บัญชีคือคลาส Entity ของฉัน): Account result = manager.find(Account.class, primaryKey); ใน Scala ความพยายามที่ไร้เดียงสาของฉันคือ: val result = manager.find(Account.class, primaryKey) แต่เมื่อฉันลองใช้Account.classใน Scala ดูเหมือนว่าจะไม่เป็นแบบนี้ ฉันจะระบุวัตถุ java.lang.Class สำหรับคลาสบัญชีใน Scala ได้อย่างไร
183 java  class  scala 

15
วิธีการกำหนด“ การแยกประเภท” (ประเภทยูเนี่ยน)?
วิธีหนึ่งที่ได้รับการแนะนำให้จัดการกับคำจำกัดความที่ซ้ำซ้อนของวิธีโอเวอร์โหลดคือการแทนที่การโอเวอร์โหลดด้วยการจับคู่รูปแบบ: object Bar { def foo(xs: Any*) = xs foreach { case _:String =&gt; println("str") case _:Int =&gt; println("int") case _ =&gt; throw new UglyRuntimeException() } } fooวิธีนี้ต้องว่าเรายอมแพ้การตรวจสอบประเภทคงที่ในข้อโต้แย้งที่จะ มันจะดีกว่าที่จะเขียน object Bar { def foo(xs: (String or Int)*) = xs foreach { case _: String =&gt; println("str") case _: Int =&gt; …
181 scala 

1
รับประเภทโครงสร้างด้วยวิธีการเรียนที่ไม่ระบุชื่อจากแมโคร
สมมติว่าเราต้องการเขียนแมโครที่กำหนดคลาสนิรนามด้วยสมาชิกประเภทหรือวิธีการแล้วสร้างอินสแตนซ์ของคลาสนั้นที่พิมพ์แบบคงที่เป็นชนิดโครงสร้างกับวิธีการเหล่านั้นเป็นต้นซึ่งเป็นไปได้กับระบบมาโครใน 2.10 0 และส่วนสมาชิกประเภทนั้นง่ายมาก: object MacroExample extends ReflectionUtils { import scala.language.experimental.macros import scala.reflect.macros.Context def foo(name: String): Any = macro foo_impl def foo_impl(c: Context)(name: c.Expr[String]) = { import c.universe._ val Literal(Constant(lit: String)) = name.tree val anon = newTypeName(c.fresh) c.Expr(Block( ClassDef( Modifiers(Flag.FINAL), anon, Nil, Template( Nil, emptyValDef, List( constructor(c.universe), TypeDef(Modifiers(), newTypeName(lit), Nil, …

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