1、String是集合类型吗?
问题来源:
“如果for循环的循环体以yield开始,则该循环会构造出一个集合,每次迭代生成集合中的一个值。
for推导式生成的集合与他的第一个生成器是类型兼容的。
for(c<-"Hello";i<-0 to 1) yield (c+i).toChar
//将生成"HIeflmlmop" 打印出来是String类型
for(i<- 0 to 1 ;c<- "Hello") yield (c+i).toChar
//将生成 Vectot('H','e','l','l','o','I','f','m','m','p')” --------《快学scala20页》
2、Int和BigInt的深层次区别
def function(s : String) =
{
var result:Int = 1
for(ch<-s if(ch.toInt >=65 && ch.toInt<=122))
result *=ch
result
}
scala> function("Hello")
res31: Int = 825152896
def function(s : String) =
{
var result:BigInt = 1
for(ch<-s if(ch.toInt >=65 && ch.toInt<=122))
result *=ch
result
}
scala> function("Hello")
res32: BigInt = 9415087488
scala> Int.MaxValue
res33: Int = 2147483647
scala> BigInt
res35: math.BigInt.type = scala.math.BigInt$@5ec52546
scala> BigInt.MaxValue
<console>:8: error: value MaxValue is not a member of object scala.math.BigInt
BigInt.MaxValue
^
a.但为什么得出的是825152896????
b.BigInt的机制是什么?