关闭

scala中 toString和apply的区别

标签: scala
1031人阅读 评论(0) 收藏 举报
分类:
class legotime{
  def apply = "this is apply method"

  /**
    * 1 :scala中的toString和java中的toSting 一样------所有的对象都有這个方法,
    * 因为toString 是 java中object的方法,而全部的类都是继承于Object這个类
    * 2: java中的toString是
    * public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
      }
    *  所以toString方法默认得到类型名字+hashCode
    *  如果要不同的结果,那么就应该 override 這个方法
    *
    *  3:toString 方法一定是返回的是String类型
    */
  override def toString = "this is toString method"
}

object applyAndToString {
  def main(args: Array[String]) {
    val lego1 = new legotime
    println(lego1)//this is toString method
    val lego2 = new legotime()
    println(lego2)//this is toString method

    //在测试下面代码的时候 legotime的apply方法先不加括号
    //val lego3 = new legotime()()
    //println(lego3)//发现报错,提示 : legotime does not take parameters

    /**
      *  当给apply方法加上括号的时候就不会报错
      */
    val lego4 = new legotime()()
    println(lego4)//this is apply method




  }
}
1
0
查看评论

scala中的apply方法与unapply方法

1.apply方法当scala中类或者对象有一个主要用途的时候,apply方法就是一个很好地语法糖。请看下面一个简单的例子:class Foo(foo: String) { }object Foo { def apply(foo: String) : Foo = { new ...
  • bitcarmanlee
  • bitcarmanlee
  • 2017-08-05 22:17
  • 1357

scala apply方法 笔记

Scala比Java更面向对象的一个方面是Scala没有静态成员。替代品是,Scala有单例对象:singleton object。当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。你必须在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴...
  • pzw_0612
  • pzw_0612
  • 2015-09-19 17:08
  • 9466

Js中apply与call的区别与用法

解析:apply与call是更改对象的内部指针,即改变对象的this指向的内容。 call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this。后面的参数都是传递给当前对象的参数。 参数区别:apply传入的必须是一个参数数组,也就是将多个参数组合成为一个数组传入,而call没有...
  • wangji5850
  • wangji5850
  • 2016-03-17 12:00
  • 1504

scala中的apply和unapply

本文讲解scala中的apply和unapply的使用方法
  • beijicy
  • beijicy
  • 2016-02-01 11:23
  • 3097

scala中的apply()方法

apply方法类似于类的初始化方法,在遇到Object(参数1,参数2,......,参数n)时就会自动调用apply()方法。 object Test { def main(args: Array[String]): Unit = { val a = ApplyTest() ...
  • u013063153
  • u013063153
  • 2016-12-19 19:05
  • 2621

Scala单例对象、伴生类以及伴生对象、apply介绍

Scala单例对象、伴生类以及伴生对象、Scala apply介绍。
  • yyywyr
  • yyywyr
  • 2015-12-06 12:04
  • 9453

call和apply的区别

call和apply的区别       我们在项目中经常使用call或者apply来继承某个类的实例属性和方法。但是你知道两者的却区别是什么吗?了解两者的区别,有助于你正确的选择使用call还是apply。       在javas...
  • Harry_Kuma
  • Harry_Kuma
  • 2015-05-07 22:22
  • 1214

Desugar Scala(15) -- unapply和unapplySeq方法

欢迎关注我的新博客地址:http://cuipengfei.me/   实在想不到什么动词可以当做脱衣服来讲了,所以从现在开始这系列博文就叫做Desugar Scala了。除非哪天才思泉涌,又想到了新词:) 开始正文。 名字叫做unapply和unapplySeq的...
  • cuipengfei1
  • cuipengfei1
  • 2014-06-22 19:27
  • 4896

toString和(String)的区别

详细的讲解参见别人写的,链接点击打开链接。明白了很多 简述 在Java中,往往需要把一个类型的变量转换成String 类型。作为菜鸟,有时候我会使用 (String) data,有时候就使用data.toString(),如果不行还会试试 String.valueOf(data...
  • liuhenggchao186
  • liuhenggchao186
  • 2016-09-12 10:38
  • 4192

toString和toLocalString的区别

都是返回字符串,但是toString可以对多种类型进行转换,比如Integer,Long等,而toLocalString是对Date型转换,返回一个本地区域设置的默认格式表示的日期,就是返回一个你本机上面区域与语言设置中设置的日期时间格式的字符串.本文是使用 B3log Solo 从 记录点滴--从...
  • hncdcsm1
  • hncdcsm1
  • 2011-05-09 11:19
  • 813