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

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

3
การตัดสินใจสำหรับข้อยกเว้นที่ไม่ได้ตรวจสอบใน Scala
ในฐานะโปรแกรมเมอร์ Java ฉันมีความสำคัญอย่างยิ่งต่อข้อยกเว้นที่ไม่ได้ตรวจสอบ โปรแกรมเมอร์ส่วนใหญ่ใช้เป็นเส้นทางในการเข้ารหัสความง่ายเท่านั้นเพื่อสร้างปัญหาในภายหลัง นอกจากนี้โปรแกรม (แม้ว่าจะไม่เป็นระเบียบ) ที่มีข้อยกเว้นที่ตรวจสอบนั้นมีความแข็งแกร่งมากเมื่อเปรียบเทียบกับโปรแกรมที่ไม่ได้ตรวจสอบ น่าแปลกที่ Scala ไม่มีสิ่งใดที่เรียกว่าข้อยกเว้นที่ตรวจสอบแล้ว Java ที่เลือกและไม่ถูกตรวจสอบทั้งหมดจะถูกตรวจสอบใน Scala แรงจูงใจในการตัดสินใจครั้งนี้คืออะไร? สำหรับฉันมันเปิดปัญหามากมายเมื่อใช้รหัสภายนอกใด ๆ และถ้าโดยบังเอิญเอกสารไม่ดีก็จะส่งผลให้ฆ่า

4
วิธีสัมภาษณ์ผู้พัฒนาสกาล่า [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา โปรแกรมเมอร์สกาลาถูกสัมภาษณ์อย่างไร? อะไรคือแง่มุมที่ผู้สัมภาษณ์มองหาเมื่อสัมภาษณ์นักพัฒนาสกาล่า?
17 interview  scala 

3
เหตุใดจึงใช้ข้อยกเว้นเกิน (ทำเครื่องหมาย)
เมื่อไม่นานมานี้ฉันเริ่มใช้ Scala แทน Java ส่วนหนึ่งของกระบวนการ "แปลง" ระหว่างภาษาสำหรับฉันได้เรียนรู้การใช้งานEitherอัตโนมัติแทน (ตรวจสอบ) Exceptions ฉันได้รับการเข้ารหัสด้วยวิธีนี้มาระยะหนึ่งแล้ว แต่เมื่อไม่นานมานี้ฉันเริ่มสงสัยว่าเป็นวิธีที่ดีกว่าหรือไม่ ข้อEitherได้เปรียบที่สำคัญอย่างหนึ่งที่มากกว่าExceptionคือประสิทธิภาพที่ดีกว่า Exceptionความต้องการที่จะสร้างสแต็คร่องรอยและจะถูกโยน เท่าที่ฉันเข้าใจการขว้างปาExceptionไม่ใช่ส่วนที่เรียกร้อง แต่การสร้างสแต็กติดตามคือ แต่แล้วหนึ่งสามารถสร้าง / สืบทอดExceptions พร้อมด้วยscala.util.control.NoStackTraceและมากยิ่งขึ้นดังนั้นผมเห็นความอุดมสมบูรณ์ของกรณีที่ด้านซ้ายของEitherในความเป็นจริงException(ละทิ้งการเพิ่มประสิทธิภาพการทำงาน) ข้อดีอีกข้อหนึ่งEitherก็คือคอมไพเลอร์ - ความปลอดภัย คอมไพเลอร์ Scala จะไม่บ่นเกี่ยวกับExceptions ที่ไม่ได้จัดการ(ต่างจากคอมไพเลอร์ของ Java) แต่ถ้าฉันไม่เข้าใจผิดการตัดสินใจครั้งนี้มีเหตุผลด้วยเหตุผลเดียวกับที่กำลังคุยกันในหัวข้อนี้ดังนั้น ... ในแง่ของไวยากรณ์ฉันรู้สึกว่าExceptionสไตล์นั้นชัดเจนกว่า ตรวจสอบบล็อคโค้ดต่อไปนี้ (ทั้งการใช้ฟังก์ชันเดียวกัน): Either รูปแบบ: def compute(): Either[String, Int] = { val aEither: Either[String, String] = if (someCondition) Right("good") else Left("bad") …

2
ลักษณะในสกาล่าหลีกเลี่ยง "ข้อผิดพลาดของเพชร" ได้อย่างไร
(หมายเหตุ: ฉันใช้ 'ข้อผิดพลาด' แทน 'ปัญหา' ในชื่อด้วยเหตุผลที่ชัดเจน .. ;)) ฉันได้อ่านพื้นฐานเกี่ยวกับลักษณะนิสัยในสกาล่า มันคล้ายกับอินเตอร์เฟสใน Java หรือ C # แต่อนุญาตให้มีการใช้งานเมธอดที่เป็นค่าเริ่มต้น ฉันสงสัยว่า: สิ่งนี้ไม่สามารถทำให้เกิดปัญหา "ปัญหาเพชร" ได้หรือไม่ซึ่งเป็นเหตุผลว่าทำไมหลาย ๆ ภาษาจึงหลีกเลี่ยงการสืบทอดหลายอย่างตั้งแต่แรก? ถ้าเป็นเช่นนั้นสกาล่าจัดการเรื่องนี้อย่างไร?

5
ทำไมต้องใช้ Scala มากกว่า Java
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเป็นภาษาสกาล่าโดยสิ้นเชิง ... ฉันยังคงดิ้นรนกับเหตุผลที่ว่า บริษัท ใดควรเปลี่ยนจากชวาเป็นสคาลา Scala เป็นเพียงน้ำตาล syntatic ที่ด้านบนของ JVM หรือมีการปรับปรุงพื้นฐานใน Scala มากกว่า Java ที่จะปรับปรุงการใช้งานจริงหรือไม่?
16 java  scala 

4
หน่วยทดสอบรหัสฟังก์ชั่นแบบคงที่พิมพ์
ฉันต้องการถามคนอื่น ๆ ว่าในกรณีนี้การทดสอบหน่วยการพิมพ์แบบสแตติกทำงานได้ดีตามที่เขียนใน haskell, scala, ocaml, nemerle, f # หรือ haXe (สุดท้ายคือสิ่งที่ฉันสนใจจริงๆ แต่ฉันต้องการ แตะเข้าไปในความรู้ของชุมชนที่ใหญ่กว่า) ฉันถามสิ่งนี้เพราะจากความเข้าใจของฉัน: ด้านหนึ่งของการทดสอบหน่วยคือการมีรายละเอียดในรูปแบบที่รันได้ อย่างไรก็ตามเมื่อใช้รูปแบบการประกาศที่แมปข้อมูลจำเพาะอย่างเป็นทางการกับความหมายของภาษาเป็นไปได้หรือไม่ที่จริงแล้วมันเป็นไปได้หรือไม่ที่จะแสดงรายละเอียดในรูปแบบที่รันได้ในวิธีที่แยกจากกัน ลักษณะที่ชัดเจนของการทดสอบหน่วยคือการติดตามข้อผิดพลาดที่ไม่สามารถเปิดเผยได้ผ่านการวิเคราะห์แบบคงที่ เนื่องจากรหัสการทำงานที่ปลอดภัยประเภทนั้นเป็นเครื่องมือที่ดีในการเขียนโค้ดที่ใกล้เคียงกับที่ตัววิเคราะห์สถิตของคุณเข้าใจมากดูเหมือนว่าคุณสามารถเปลี่ยนความปลอดภัยไปสู่การวิเคราะห์แบบสถิต อย่างไรก็ตามข้อผิดพลาดง่าย ๆ เช่นการใช้xแทนy(ทั้งคู่เป็นพิกัด) ในรหัสของคุณไม่สามารถครอบคลุม ความผิดพลาดดังกล่าวอาจเกิดขึ้นในขณะที่เขียนรหัสทดสอบดังนั้นฉันไม่แน่ใจว่ามันคุ้มค่ากับความพยายามหรือไม่ การทดสอบหน่วยจะนำเสนอความซ้ำซ้อนซึ่งหมายความว่าเมื่อต้องการเปลี่ยนแปลงรหัสการใช้งานและการทดสอบที่ครอบคลุมรหัสนี้จะต้องเปลี่ยนทั้งคู่ แน่นอนว่าค่าโสหุ้ยนี้เป็นเรื่องเกี่ยวกับค่าคงที่ดังนั้นเราจึงสามารถโต้แย้งได้ว่ามันไม่สำคัญ ในความเป็นจริงในภาษาอย่าง Ruby นั้นไม่ได้เปรียบเทียบกับประโยชน์ที่ได้รับ แต่เนื่องจากการเขียนโปรแกรมเชิงฟังก์ชันที่ครอบคลุมการทดสอบหน่วยภาคพื้นดินจำนวนมากนั้นมีจุดประสงค์เพื่อให้ความรู้สึกว่าเป็นค่าใช้จ่ายที่คงที่เพียงอย่างเดียว จากนี้ฉันจะอนุมานว่าการทดสอบหน่วยค่อนข้างล้าสมัยในรูปแบบการเขียนโปรแกรมนี้ แน่นอนว่าการอ้างสิทธิ์ดังกล่าวสามารถนำไปสู่สงครามศาสนาเท่านั้นดังนั้นให้ฉันตั้งคำถามนี้ง่ายๆ เมื่อคุณใช้รูปแบบการเขียนโปรแกรมคุณใช้ขอบเขตการทดสอบแบบใดและเพราะเหตุใด (คุณหวังว่าจะได้คุณภาพสำหรับโค้ดของคุณ) หรือในทางกลับกัน: คุณมีเกณฑ์ที่คุณสามารถมีคุณสมบัติหน่วยของรหัสการทำงานแบบคงที่ตามที่ครอบคลุมโดยตัววิเคราะห์แบบคงที่และโดยไม่จำเป็นต้องครอบคลุมการทดสอบหน่วย?

2
คุณจำเป็นต้องรู้ Java ก่อนที่จะลอง Scala
ฉันสนใจเรียนรู้สกาล่า ฉันอ่านมากเกี่ยวกับเรื่องนี้ แต่หลายคนให้ความสำคัญกับมันเพราะมันมีรูปแบบนักแสดงที่ดีกว่าสำหรับการเกิดพร้อมกันมันจัดการ xml ด้วยวิธีที่ดีกว่ามากแก้ปัญหาของฟังก์ชั่นชั้นหนึ่ง คำถามของฉันคือคุณต้องรู้จัก Java เพื่อทำความเข้าใจ / ชื่นชมวิธีการทำงานของ Scala? จะเป็นการดีกว่าถ้าคุณใช้การแทงที่ Java ก่อนจากนั้นลองใช้ Scala หรือคุณสามารถเริ่มต้น Scala โดยที่ไม่มี backround ของ Java อย่างแน่นอน
15 java  scala 

2
(Dis-) ข้อดีของการพิมพ์โครงสร้าง
ผมเคยดูเพียงแค่การพูดคุยนี้โดยแดเนียล Spiewakที่เขาพูดเกี่ยวกับข้อดีของการพิมพ์โครงสร้างเมื่อเทียบกับสกาล่าของ ans ของ Java พิมพ์เล็กน้อย ตัวอย่างหนึ่งสำหรับความแตกต่างนี้จะเป็นรหัส Java ต่อไปนี้ public interface Foo { public int length(); } public interface Bar { public int length(); } Foo f = ...; Bar b = f; ซึ่งแน่นอนว่าจะไม่รวบรวมเพราะความเข้ากันได้ระหว่างประเภทFooและBarจะถูกกำหนดโดยชื่อ ระบบประเภทโครงสร้างในอีกด้านหนึ่งสามารถประกาศว่าทั้งสองประเภทมีความเท่าเทียมกันหรือเข้ากันได้และดังนั้นในกรณีอื่น ๆ อนุญาตให้มีการตรวจสอบการพิมพ์เป็ด ตอนนี้ฉันคิดว่าฉันเข้าใจถึงข้อดีของระบบโครงสร้างแบบส่วนใหญ่แล้ว แต่ฉันสงสัยว่ามันจะไม่ทำให้ความปลอดภัยของประเภทจากตัวอย่างเช่นต่อไปนี้เป็นโมฆะ class Foo { class Bar { /* ... */ } def …

1
ฉันควรศึกษาโครงการโอเพ่นซอร์สของสกาล่าเพื่อเรียนรู้วิธีปฏิบัติในการเข้ารหัสที่ดีที่สุด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา โครงการโอเพ่นซอร์สใดที่คุณจะแนะนำให้ผู้คนศึกษาเพื่อเรียนรู้ว่าข้อดีของการเขียนสกาล่าเป็นอย่างไร คุณลักษณะบางอย่างที่ฉันกำลังมองหา - แม้ว่าพวกเขาไม่จำเป็นต้องมีอยู่ในทุกโครงการที่เป็นแบบอย่าง: การใช้ภาษาและไลบรารีที่เป็นสำนวน เทคนิคการโปรแกรมเชิงหน้าที่ เห็นพ้องด้วย (ใช้ Actors หรือวิธีอื่น ๆ ) ระบบขนาดใหญ่พร้อมโมดูลจำนวนมาก การอ่าน Java interop เป็นต้น
15 scala 

2
มีหนังสือที่ยอมรับเกี่ยวกับ Scala หรือไม่? [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันสนใจที่จะเรียนรู้สกาล่า แต่เนื่องจากมีความแปลกใหม่ฉันจึงไม่สามารถหาหนังสือจำนวนมากเกี่ยวกับเรื่องนี้ได้ มีหนังสือที่มีมาตรฐาน de-พฤตินัยสำหรับการอธิบายวิธีปฏิบัติที่ดีที่สุดวิธีการออกแบบและข้อมูลที่เป็นประโยชน์อื่น ๆ เกี่ยวกับสกาล่า? อะไรทำให้หนังสือเล่มนั้นพิเศษ?
15 books  scala 

8
คุณส่งเสริมองค์กรของคุณให้ย้ายจาก Java เป็น Scala อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา องค์กรของใครเริ่มการโยกย้ายจาก Java ไปยัง Scala หรือไม่? ถ้าใช่คุณจะทำอย่างไร ฉันจะทำอย่างไรเพื่อกระตุ้นให้เพื่อนร่วมงานทำเช่นเดียวกัน
15 java  scala  migration 

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

1
เหตุใดการผนวกรายการใน Scala จึงมีความซับซ้อนของเวลา O (n)
ฉันเพิ่งอ่านว่าเวลาดำเนินการของการดำเนินการผนวกสำหรับList(+) Listเติบโตขึ้นเป็นเส้นตรงกับขนาดของ การต่อท้ายListดูเหมือนจะเป็นการดำเนินการทั่วไปที่ค่อนข้างสวย เหตุใดจึงควรใช้วิธีการนี้เพื่อเตรียมส่วนประกอบจากนั้นจึงย้อนรายการ มันไม่สามารถเป็นความล้มเหลวในการออกแบบเนื่องจากการใช้งานอาจเปลี่ยนแปลงได้ทุกเมื่อ จากมุมมองของฉันทั้งการเตรียมและการต่อท้ายควรเป็น O (1) มีเหตุผลที่ถูกต้องสำหรับสิ่งนี้หรือไม่?

2
ทำไมประเภทตัวเลือก Scala ไม่ถูกเรียกว่าอาจจะเหมือนกับใน Haskell [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ทำไมประเภทตัวเลือก Scala ไม่ถูกเรียกว่าอาจจะเหมือนกับใน Haskell อาจทำให้รู้สึก "ความหมาย" มากขึ้นสำหรับฉัน แต่บางทีตัวเลือกอาจมีพฤติกรรมที่แตกต่างกันซึ่งฉันไม่ทราบ มีเหตุผลใดเป็นพิเศษหรือไม่ที่ตัวเลือกใน Scala ไม่ได้ถูกเรียกว่าอาจจะ?

1
Scala เป็นภาษาสำหรับการเขียนโปรแกรมทั่วไป
ในบทความ“ การศึกษาเปรียบเทียบเปรียบเทียบเพิ่มเติมของการสนับสนุนภาษาสำหรับการเขียนโปรแกรมทั่วไป” โดย Garcia และคณะ มีการเปรียบเทียบคุณสมบัติภาษาโปรแกรมที่น่าสนใจสำหรับการเขียนโปรแกรมทั่วไป: ด้วยคำอธิบายสั้น ๆ ของคำศัพท์: ทุกคนสามารถทดสอบสกาล่าสนับสนุนการเขียนโปรแกรมทั่วไปภายในกรอบนี้ได้หรือไม่ คือเพิ่มคอลัมน์ในตารางแรกพร้อมคำอธิบายถ้าเป็นไปได้

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