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

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

4
“ coalgebra” หมายถึงอะไรในบริบทของการเขียนโปรแกรม
ฉันเคยได้ยินคำว่า "coalgebras" หลายครั้งในการเขียนโปรแกรมการทำงานและวงกลม PLT โดยเฉพาะอย่างยิ่งเมื่อการสนทนาเกี่ยวกับวัตถุ, comonads, เลนส์และอื่น ๆ Googling คำนี้ให้หน้าซึ่งให้คำอธิบายทางคณิตศาสตร์ของโครงสร้างเหล่านี้ซึ่งฉันเข้าใจยากมาก ใครช่วยอธิบายหน่อยได้ว่า coalgebras มีความหมายอย่างไรในบริบทของการเขียนโปรแกรมความสำคัญของพวกมันคืออะไรและพวกมันเกี่ยวข้องกับวัตถุและ comonads อย่างไร

5
ลักษณะที่ผนึกคืออะไร
คลาสที่ปิดผนึกมีการอธิบายไว้ใน 'การเขียนโปรแกรมใน Scala' แต่ลักษณะที่ซีลไม่ได้ ฉันจะหาข้อมูลเพิ่มเติมเกี่ยวกับลักษณะที่ผนึกได้จากที่ไหน ฉันอยากจะรู้ว่าถ้าลักษณะที่ปิดผนึกเหมือนกันกับชั้นเรียนที่ปิดผนึกหรือไม่? หรือถ้าไม่อะไรคือความแตกต่าง? เมื่อไรจึงควรใช้ลักษณะที่ปิดสนิท (และเมื่อไม่)
332 scala  sealed  traits 

8
อะไรคือความแตกต่างอย่างเป็นทางการใน Scala ระหว่างวงเล็บปีกกาและวงเล็บและควรใช้เมื่อใด?
เป็นความแตกต่างอย่างเป็นทางการระหว่างการขัดแย้งผ่านฟังก์ชั่นในวงเล็บอะไร()และในการจัดฟัน{}? ความรู้สึกที่ฉันได้รับจากการเขียนโปรแกรมในหนังสือสกาล่าคือความยืดหยุ่นของสกาล่าและฉันควรใช้สิ่งที่ฉันชอบที่สุด แต่ฉันพบว่าบางกรณีก็คอมไพล์ในขณะที่คนอื่นไม่ทำ ตัวอย่างเช่น (หมายถึงเพียงตัวอย่างฉันจะขอบคุณคำตอบใด ๆ ที่กล่าวถึงกรณีทั่วไปไม่ใช่เฉพาะตัวอย่างนี้เท่านั้น): val tupleList = List[(String, String)]() val filtered = tupleList.takeWhile( case (s1, s2) => s1 == s2 ) => ข้อผิดพลาด: การเริ่มต้นของการแสดงออกอย่างง่ายที่ผิดกฎหมาย val filtered = tupleList.takeWhile{ case (s1, s2) => s1 == s2 } => สบายดี

11
วิธีการใช้ java.String.format ใน Scala?
ฉันกำลังพยายามใช้.formatวิธีการของสายอักขระ แต่ถ้าฉันวาง% 1,% 2 ฯลฯ ในสตริง java.util.UnknownFormatConversionException จะถูกส่งออกไปชี้ไปยังส่วนซอร์สโค้ด Java ที่สับสน: private void checkText(String s) { int idx; // If there are any '%' in the given string, we got a bad format // specifier. if ((idx = s.indexOf('%')) != -1) { char c = (idx > s.length() - 2 ? …
322 java  string  scala  format 

18
อ่านไฟล์ทั้งหมดใน Scala?
วิธีที่ง่ายและเป็นที่ยอมรับในการอ่านไฟล์ทั้งหมดในหน่วยความจำใน Scala คืออะไร (เป็นการดีที่ควบคุมการเข้ารหัสอักขระ) สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: scala.io.Source.fromPath("file.txt").getLines.reduceLeft(_+_) หรือฉันควรจะใช้หนึ่งในสำนวนเทพเจ้าอันยิ่งใหญ่ของJavaที่ดีที่สุดที่ (โดยไม่ต้องใช้ห้องสมุดภายนอก) น่าจะเป็น: import java.util.Scanner import java.io.File new Scanner(new File("file.txt")).useDelimiter("\\Z").next() จากการอ่านการสนทนาในรายชื่อผู้รับจดหมายฉันยังไม่ชัดเจนว่า scala.io.Source น่าจะเป็นห้องสมุด I / O ที่เป็นที่ยอมรับ ฉันไม่เข้าใจว่าจุดประสงค์ของมันคืออะไร ... ฉันต้องการสิ่งที่ตายง่ายและจดจำได้ง่าย ตัวอย่างเช่นในภาษาเหล่านี้มันยากที่จะลืมสำนวน ... Ruby open("file.txt").read Ruby File.read("file.txt") Python open("file.txt").read()
312 scala 


9
วิธีการแบบจำลองประเภทปลอดภัย enum ประเภท?
Scala ไม่มีประเภทที่ปลอดภัยenumเหมือน Java ที่มี เมื่อพิจารณาจากค่าคงที่ที่เกี่ยวข้องชุดใดจะเป็นวิธีที่ดีที่สุดในสกาล่าในการเป็นตัวแทนค่าคงที่เหล่านั้น
311 scala  enums 

3
ฟังก์ชั่นการใช้งานใน Scala คืออะไร?
ฉันไม่เคยเข้าใจจากคำนามที่ไม่ได้พูดและไม่จริง ( AddTwoชั้นมีตัวอย่างapplyที่เพิ่มสอง!) ฉันเข้าใจว่ามันเป็นน้ำตาลซินแทคติคดังนั้น (ฉันอนุมานจากบริบท) มันต้องได้รับการออกแบบมาเพื่อให้โค้ดบางอย่างใช้งานง่ายขึ้น คลาสที่มีapplyฟังก์ชั่นให้ความหมายอะไร? ใช้เพื่ออะไรและมีจุดประสงค์อะไรในการปรับปรุงโค้ดให้ดีขึ้น (unmarshalling, verbing นาม ฯลฯ ) มันช่วยได้อย่างไรเมื่อใช้ในวัตถุที่แสดงร่วม
311 scala 

7
การทำความเข้าใจโดยนัยใน Scala
ฉันกำลังทำของฉันผ่านการกวดวิชา playframework Scala และฉันเจอรหัสนี้ซึ่งทำให้ฉันงงงวย: def newTask = Action { implicit request => taskForm.bindFromRequest.fold( errors => BadRequest(views.html.index(Task.all(), errors)), label => { Task.create(label) Redirect(routes.Application.tasks()) } ) } ดังนั้นฉันตัดสินใจที่จะตรวจสอบและเจอโพสต์นี้ ฉันยังไม่เข้าใจ อะไรคือความแตกต่างระหว่างสิ่งนี้: implicit def double2Int(d : Double) : Int = d.toInt และ def double2IntNonImplicit(d : Double) : Int = d.toInt นอกจากความจริงที่เห็นได้ชัดพวกเขามีชื่อวิธีการที่แตกต่างกัน ฉันควรใช้เมื่อใดimplicitและเพราะเหตุใด

12
ความแตกต่างระหว่างคำจำกัดความ var และ val ใน Scala คืออะไร?
อะไรคือความแตกต่างระหว่าง a varและvalคำจำกัดความใน Scala และทำไมภาษาจึงต้องการทั้งสอง ทำไมคุณถึงเลือกvalมากกว่าvarและในทางกลับกัน?
301 scala 

5
ความแตกต่างระหว่าง Seq และรายการใน Scala
ฉันเคยเห็นในตัวอย่างมากมายที่บางครั้งใช้ Seq ในขณะที่เวลาอื่นคือรายการ ... มีความแตกต่างนอกเหนือจากที่เคยเป็นประเภทสกาล่าและรายชื่อมาจาก Java หรือไม่?
299 list  scala  collections  seq 

19
ฉันจะแยกวงใน Scala ได้อย่างไร
ฉันจะแยกวงได้อย่างไร var largest=0 for(i<-999 to 1 by -1) { for (j<-i to 1 by -1) { val product=i*j if (largest>product) // I want to break out here else if(product.toString.equals(product.toString.reverse)) largest=largest max product } } ฉันจะเปลี่ยนลูปเป็นลูปเป็นการวนรอบแบบวนซ้ำได้อย่างไร? จาก Scala Talk ที่ FOSDEM 2009 http://www.slideshare.net/Odersky/fosdem-2009-1013261 ในหน้า 22: ทำลายและดำเนินการต่อสกาล่าไม่ได้มีพวกเขา ทำไม? พวกเขามีความจำเป็นเล็กน้อย ดีกว่าใช้ฟังก์ชั่นขนาดเล็กจำนวนมากออกวิธีการโต้ตอบกับการปิด พวกเขาไม่ต้องการ! คำอธิบายคืออะไร

5
Scala ประเภทที่สูงกว่าคืออะไร
คุณสามารถค้นหาสิ่งต่อไปนี้บนเว็บ: ประเภทที่สูงขึ้นชนิด == ตัวสร้างประเภท? class AClass[T]{...} // For example, class List[T] บางคนบอกว่านี่เป็นประเภทที่สูงกว่าเพราะมันเป็นนามธรรมมากกว่าประเภทซึ่งจะสอดคล้องกับคำนิยาม ประเภทที่สูงขึ้นเป็นประเภทที่ใช้ประเภทอื่น ๆ และสร้างประเภทใหม่ แม้ว่าเหล่านี้เป็นที่รู้จักกันเป็นประเภทคอนสตรัค (ตัวอย่างเช่นในการเขียนโปรแกรมใน Scala ) typeed type ที่สูงขึ้น == type constructor ซึ่งใช้ตัวสร้าง type เป็นพารามิเตอร์ type? ในGenericsกระดาษชนิดที่สูงขึ้นคุณสามารถอ่าน ... ประเภทที่เป็นนามธรรมมากกว่าประเภทที่เป็นนามธรรมมากกว่าประเภท ('ประเภทที่สูงกว่าประเภท') ... " ซึ่งแสดงให้เห็นว่า class XClass[M[T]]{...} // or trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]] เป็นประเภทที่สูงขึ้น ดังนั้นด้วยนี้ในใจมันเป็นเรื่องยากที่จะแยกแยะระหว่างประเภทคอนสตรัค , ประเภท …

1
จะใช้ Shapeless ใน Quasiquote ได้อย่างไร?
ฉันพยายามเรียกShapelessแมโครจากข้างในquasiquoteด้วยScalaและฉันไม่ได้สิ่งที่ต้องการ มาโครของฉันไม่ส่งคืนข้อผิดพลาดใด ๆ แต่จะไม่ขยายWitness(fieldName)เข้าไปWitness.Lt[String] val implicits = schema.fields.map { field => val fieldName:String = field.name val fieldType = TypeName(field.valueType.fullName) val in = TermName("implicitField"+fieldName) val tn = TermName(fieldName) val cc = TermName("cc") q"""implicit val $in = Field.apply[$className,$fieldType](Witness($fieldName), ($cc: $className) => $cc.$tn)""" } นี่คือFieldคำจำกัดความของฉัน: sealed abstract class Field[CC, FieldName] { val fieldName: …


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