scala 学习笔记 函数 List

本文深入探讨了Scala中List的特性,特别是+:操作符的行为,以及如何正确使用List[(String) => Any]类型。同时,文章对比了Scala的Function与Java的list.add()的不同,并解释了如何在Scala中轮询调用函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  def  t2(name:String):Unit=()
  var  list=List(t2 _)

    list=  list:+a1 _
    list=  list:+a2 _
    list=  list:+a3 _
// 这里要说以下:+操作 不会改变原来的list 只会产生一个新的list 所以 
//不是 java里面的 list.add() 操作  被误导了好久。。

最后轮询调用
    for(f<-list){
     // println(f.toString())
      f.apply(name)  这里也可以直接写成 f(name)

    }

  这里有几点 注意  list(t2 _) 不是中括号  

  以后回来在补充。。。

 不能使用  

var list=List[(String)=>Any]

虽然idea不报错 但是编译不会通过的   但是 List[Int] 这种式可以的

scala> val list2=List[String => Any]
<console>:23: error: missing argument list for method apply in object List
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `apply _` or `apply(_)` instead of `apply`.
       val list2=List[String => Any]
                     ^
Function
scala的Function

可以看到 Function是一个Object 而Function1 和Function2 是trailt  

在scala里面  List[]  这里面 只接受 class 类型    List() 接受实例类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值