scala数组与java数组对比

61 篇文章 0 订阅

java数组不是个类,scala数组是类
java定义

int[] a = new int[]{1, 2, 5};

scala定义,scala这个实际是个语法糖,调用了apply方法

val a=Array(1,2,5)

源码上

scala

final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable {

  /** The length of the array */
  def length: Int = throw new Error()

  // The element at given index.
  def apply(i: Int): T = throw new Error()

  // Update the element at given index.
  def update(i: Int, x: T) { throw new Error() }

  //Clone the Array.
  override def clone(): Array[T] = throw new Error()
}

针对不同的泛型T,scala有不同的实现,比如针对Int

 /** Creates an array of `Int` objects */
  // Subject to a compiler optimization in Cleanup, see above.
  def apply(x: Int, xs: Int*): Array[Int] = {
    val array = new Array[Int](xs.length + 1)
    array(0) = x
    var i = 1
    for (x <- xs.iterator) { array(i) = x; i += 1 }
    array
  }

java 源码
java 找不到Array的源码~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值