相关疑难解决方法(0)

Scala中下划线的所有用途是什么?

我已经看了scala-lang.org上的调查列表,并注意到一个奇怪的问题:" 你能说出"_"的所有用途吗? " 你能?如果是,请在此处进行.我们赞赏解释性的例子.

scala

513
推荐指数
7
解决办法
13万
查看次数

Scala中的有效标识符字符

我觉得很困惑的一件事是知道我可以在方法和变量名中使用哪些字符和组合.例如

val #^ = 1 // legal
val #  = 1 // illegal
val +  = 1 // legal
val &+ = 1 // legal
val &2 = 1 // illegal
val £2 = 1 // legal
val ¬  = 1 // legal
Run Code Online (Sandbox Code Playgroud)

据我了解,字母数字标识符运算符标识符之间存在区别.除非用下划线(混合标识符)分隔,否则您可以将一个匹配或另一个匹配但不能同时混合.

Scala中的编程 6.10节,

运算符标识符由一个或多个运算符字符组成.运算符字符是可打印的ASCII字符,例如+,:,?,〜或#.

更确切地说,运算符字符属于Unicode数学符号集(Sm)或其他符号(So),或者不是字母,数字,括号,方括号,花括号,单个或双精度的7位ASCII字符引号,或下划线,句号,分号,逗号或后退字符.

所以我们被排除在使用()[]{}'"_.;,和`之外

我抬起头,统一的数学符号的维基百科,但我发现没有包括的那些+,:,?等是否有一个明确的清单某处的运营商角色是什么?

此外,任何想法为什么Unicode数学运算符(而不是符号)不算作运算符?

scala operators

48
推荐指数
2
解决办法
1万
查看次数

什么这个scala符号 - > _表示

有人可以帮我理解这段代码

case "Foo" Foo(data) -> _ => { /*.. implementation */}
Run Code Online (Sandbox Code Playgroud)

我看到了Foo.unapply(数据)的用法,但我不明白这部分是什么

- > _

如何以及何时使用它

scala

14
推荐指数
1
解决办法
1117
查看次数

使用self =>在scala中对此进行别名

例如,一些Scala API 将此别名为self

trait Function1[-T1, +R] extends AnyRef { self =>
Run Code Online (Sandbox Code Playgroud)

我知道这种混叠一般是如何工作的,但是看不出像Function1这样的特性如何从中受益.除了最初的提及,Function1 在其定义中的任何地方都不使用self,那么它的目的是什么呢?

之前已经问过这个问题的变体,但答案并不直接适用.答案已经讨论过自我类型和内部类,但我不知道这是如何适用的.

alias scala this self

10
推荐指数
1
解决办法
753
查看次数

Scala和:: object

我一直潜入scala,到目前为止我非常喜欢它.我正在开始模式匹配和案例类,以下让我有点难过.我知道它的作用,但我想知道究竟发生了什么

var list = List(2,3,4)
1::list
Run Code Online (Sandbox Code Playgroud)

如果到目前为止我的理解是正确的.然后::表示一个案例对象.如果是这样,我的问题是:

我怎么"把它"应用到1?而不是::是一个方法1.基本上可以有人拉这个语句1 ::列表分开,显示真正发生的事情(即什么方法被调用什么对象)

谢谢

scala

6
推荐指数
3
解决办法
968
查看次数

这些scala方法中下划线用法之间的差异

这些代码中这些下划线用法之间有什么区别和术语名称:(参见handler(resource)部分)

1.

def readFile[T](f: File)(handler: FileInputStream => Byte => T): T = {
    val resource = new java.io.FileInputStream(f)
    try {
        val hh = handler(resource)_
        hh(2)
    } finally {
        resource.close()
    }
}

val bs = new Array[Byte](4)

readFile(new File("scala.txt")) {
    input => b: Byte => println("Read: " + (input.read(bs) + b))
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:

Error:(55, 29) _ must follow method; cannot follow Byte => T
            val hh = handler(resource)_
                        ^
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

2.

def readFile[T](f: File)(handler: FileInputStream => Byte => T): …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

6
推荐指数
1
解决办法
957
查看次数

import语句中的箭头有什么作用?

import在一些发现了以下内容scala:

import Predef.{println => _, _}
Run Code Online (Sandbox Code Playgroud)

怎么=>办?

scala

5
推荐指数
1
解决办法
441
查看次数

Scala中的"::"是什么意思?

这意味着什么?

listeners ::= listener
list = num :: list
Run Code Online (Sandbox Code Playgroud)

特别是我不懂" :: "运算符.

symbols scala

4
推荐指数
1
解决办法
5807
查看次数

在哪里搜索Scala语法 - 保留字,关键字,运算符?

谷歌似乎不是一个搜索Scala语法的好地方.那有什么好的地方,比如保留字<:吗?谢谢

scala operators

4
推荐指数
1
解决办法
707
查看次数

scala'运算符'的典型列表

在特定的"操作符"(方法,语法糖)上找到一般信息似乎很容易,但我似乎找不到任何列出所有这些,甚至大多数这些好东西的列表.因此,通过学习语言来完成工作相当困难,或者至少过于耗费时间.

我已经查看了这个问题.虽然它有很好的信息,并且肯定会告诉你如何找到你需要的任何信息,但我希望像'口袋参考'这样的东西只有所有相关的信息而且只是专门用于此.

所以,我的问题是:

  • 有这样的清单吗?
  • 通过在学习语言的早期寻找这样的参考,我是否领先于自己?

提前致谢.

scala operators scala-2.10

2
推荐指数
1
解决办法
352
查看次数

关于斯卡拉的问题

我正在学习scala.我正在读Scala的不耐烦.

1.)

逆天

有区别吗?

for (i <- 0 to 10)if (i % 2 == 0) println(i)

for (i <- 0 to 10 if i % 2 == 0) println(i)
Run Code Online (Sandbox Code Playgroud)

2.)

我总是看到以下符号,=>但他们从不解释它的作用.

有时我认为这是一个演员,但它是完全不同的东西,我希望你能搞清楚.

scala

1
推荐指数
1
解决办法
124
查看次数

下划线导致困难

我有以下代码,它应该搜索数组并查看是否与第二个参数匹配.

def any(check: Set[Any], expr: Boolean): Boolean = {
  var checked = check.filter(_ => expr)
  if (checked == Set())
    return false
  else
    return true
}
Run Code Online (Sandbox Code Playgroud)

它应该被称为这样: any(Set(3, 4, 5, 6), _ > 5)

但是当我打电话给它时:

error: missing parameter type for expanded function ((x$1) => x$1.$greater(5))
Run Code Online (Sandbox Code Playgroud)

我对函数式语言和Scala的经验很少,所以,请给我一个彻底的解释,说明发生了什么以及如何解决它!

lambda functional-programming scala set scala-placeholder-syntax

0
推荐指数
1
解决办法
190
查看次数

在scala中使用' - >'和'< - '运算符

可能重复:
Scala标点符号(又名符号,运算符)

scala 的目的-><-操作符是什么?是否有任何有用的文档解释scala中使用的各种运算符 - 我似乎太过于混淆太多了:)

scala

0
推荐指数
1
解决办法
472
查看次数