相关疑难解决方法(0)

元组参数声明和赋值奇数

我可以按如下方式分配一个元组:

var (min, max) = (1, 2)
Run Code Online (Sandbox Code Playgroud)

但我不能再重新分配如下

(min, max) = (1, 3) //compiler error: ';' expected but '=' found
Run Code Online (Sandbox Code Playgroud)

相反,我似乎必须这样做:

min = 1
max = 3
Run Code Online (Sandbox Code Playgroud)

为什么后者不起作用而前者不起作用?

syntax scala tuples

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

在scala中交换两个变量

可能重复:
元组参数声明和赋值奇怪

在python我能做到

>>> (a,b) = (1,2)
>>> (b,a) = (a,b)
>>> (a,b)
(2, 1)
Run Code Online (Sandbox Code Playgroud)

但在斯卡拉:

Welcome to Scala version 2.8.1.final (OpenJDK Server VM, Java 1.6.0_20).
Type in expressions to have them evaluated.
Type :help for more information.

scala> var (a,b) = (1,2)
a: Int = 1
b: Int = 2

scala> (a,b)=(b,a)
<console>:1: error: ';' expected but '=' found.
       (a,b)=(b,a)
            ^
Run Code Online (Sandbox Code Playgroud)

因此,虽然我可以将vars初始化为元组,但我不能将它们指定为元组.有什么方法可以解决这个问题,除了使用tmp var?

functional-programming scala

10
推荐指数
2
解决办法
7219
查看次数

在Scala中返回多个值的函数

我是Spark&Scala的新开发人员,我想做一件简单的事情(我认为..):

  • 我有3个int值
  • 我想定义一个返回SQL请求结果的函数(作为包含3列的DF)
  • 我想将这3列中每列的内容存储在3个初始变量中。

因此,我的代码如下所示:

var a
var b 
var c

def myfunction() : (Int, Int, Int) = {
  val tmp = spark.sql(""" select col1, col2, col3 from table
  LIMIT 1
  """)

  return (tmp.collect(0)(0), tmp.collect(0)(1), tmp.collect(0)(2))

}
Run Code Online (Sandbox Code Playgroud)

因此,如果要像这样调用我的函数的想法:

a, b, c = myfunction()
Run Code Online (Sandbox Code Playgroud)

我尝试了许多配置,但是每次都会遇到许多不同的错误,因此,我感到困惑。

scala apache-spark

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