Scala学习问题积累(持续)

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

                     ^


825152896<2147483647<9415087488

a.但为什么得出的是825152896????

b.BigInt的机制是什么?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值