Questions tagged «scala»

Scala是主要针对Java虚拟机的通用编程语言。它旨在以简洁,优雅和类型安全的方式表达常见的编程模式,它融合了命令式和功能性编程风格。它的主要特征是:具有类型推断功能的高级静态类型系统;功能类型;模式匹配; 隐式参数和转换;操作符重载;与Java完全互操作性;并发

4
“ coalgebra”在编程环境中是什么意思?
我在函数式编程和PLT圈子中曾多次听到过“ coalgebras”一词,尤其是当讨论对象,共面体,透镜等时。对该术语进行谷歌搜索会给出一些页面,其中给出了这些结构的数学描述,这对我来说是非常难以理解的。谁能解释编程中上下文中的代数意味着什么,它们的意义是什么,以及它们与对象和子代之间的关系?

5
什么是密封性状?
密封的类在“在Scala中编程”中进行了描述,但是密封的特征没有。在哪里可以找到有关密封性状的更多信息? 我想知道,密封特征是否与密封类相同?或者,如果没有,有什么区别?什么时候使用密封特性(什么时候不使用)是个好主意?
332 scala  sealed  traits 

8
花括号和括号在Scala中的形式差异是什么,何时使用?
将参数传递给括号()和花括号之间的形式区别是什么{}? 我从Scala编程中获得的感觉一书中是,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
如何在Scala中使用java.String.format?
我正在尝试使用.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 ? '%' : s.charAt(idx + 1)); throw new UnknownFormatConversionException(String.valueOf(c)); } …
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 



3
Scala中的apply函数是什么?
我从未从人为设计的编组和动词名词(一个AddTwo类有一个apply添加两个!)的例子中理解了它。 我知道它是语法糖,因此(我从上下文推论得出)它必须经过精心设计,以使某些代码更直观。 具有apply函数的类给出什么意思?它的作用是什么,它的目的是使代码变得更好(解组,动词名词等)? 在同伴对象中使用时有什么帮助?
311 scala 

7
了解Scala中的隐式
我正在通过Scala Playframework教程学习,遇到了这个让我感到困惑的代码片段: 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什么时候应该使用,为什么?



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 } } 如何将嵌套的循环转换为尾递归? 从FOSDEM 2009 上的Scala Talk http://www.slideshare.net/Odersky/fosdem-2009-1013261在第22页上: 中断并继续Scala没有它们。为什么?它们有点必要。更好地使用许多较小的函数发行如何与闭包进行交互。不需要它们! 有什么解释?

5
Scala中什么是更高种类的类型?
您可以在网上找到以下内容: 更高种类的类型==类型构造函数? class AClass[T]{...} // For example, class List[T] 有人说这是一种更高种类的类型,因为它抽象了符合该定义的类型。 较高种类的类型是采用其他类型并构造新类型的类型 这些虽然也称为类型构造函数。(例如,在Scala编程中)。 更高种类的类型==类型构造函数,它将类型构造函数作为类型参数? 在高级类属的论文中,您可以阅读 ...在类型上进行抽象的类型,在类型上进行抽象(“高级类型”)...” 这表明 class XClass[M[T]]{...} // or trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]] 是一种较高的类型。 因此,考虑到这一点,很难区分类型构造函数,更高种类的类型和将类型构造函数作为类型参数的类型构造函数,因此存在上述问题。

1
如何在Ququotquote中使用Shapeless?
我正在尝试Shapeless从quasiquotewith中调用宏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: String type …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.