将 String 列表作为输入(其中之一可能是None
)。如何使用Immutable Object
.
var
如果我使用or ,这很容易Mutable Object
,这里有一个例子:
def getArrayString(string: String, list1: List[String], list2: Option[List[String]]): Array[String] = {
var ret = Array[String]()
ret = ret :+ string
if (list1.nonEmpty) {
for (item <- list1) {
ret = ret :+ item
}
}
if (list2.isDefined) {
for (item <- list2.get) {
ret = ret :+ item
}
}
ret
}
问题1:如果我只想使用val
对象怎么办?
注意:如果list2
是None
返回数组不应该有任何None
对象
Question2 : ..and iflist1
andlist2
wereList[CustomClass]
whereCustomClass
is
case class CustomClass(string:String)
你会怎么做?
问题3:......如果我们用......使方法复杂化怎么办?
case class CustomClass1(string1:String)
case class CustomClass2(string2:String)
显然 CustomClass1 和 CustomClass2 可能在它们的类中有一些其他参数,使它们彼此不同。该方法的签名将是:
def getArrayString( string: String
, list1: List[CustomClass1]
, list2: Option[List[CustomClass2]]
): Array[String]`