zoukankan      html  css  js  c++  java
  • Scala学习笔记(二):object、伴生对象和基本类

    object

    object 是只有一个实例的类。它的定义与Java中的class类似,如:

    // 单例对象
    object AppEntry {
        def main(args: Array[String]): Unit = {
          print("Hello World!")
        }
    }
    

    其中有main方法,它与脚本运行方式不同,需要先编译(scalac),后运行,与java类似:

    App

    运行object,除了使用main方法,还可以直接继承trait(类似于Java中的接口)--App:

    object AppEntry1 extends App {
      print("Hello World, by extends App!")
    }
    
    

    伴生对象

    与类同名的对象称为伴生对象。相反,该类是对象的伴生类。伴生类或对象可以访问其伴随的私有成员。将伴生对象用于方法和值,这些方法和值不是特定于伴生类的实例。

    import scala.math._
    
    case class Circle(radius: Double) {
    
      import Circle._
    
      def area: Double = calculateArea(radius)
    }
    
    object Circle extends App {
      private def calculateArea(radius: Double): Double = Pi * pow(radius, 2.0)
    
      val circle1 = new Circle(5.0)
      print(circle1.area)
    }
    

    基本类

    object BasicType extends App{
      //1、基本类型
      val int = 1
      val short: Short = 2
      val byte: Byte = 3
      val long = 3L
      val double = 3.23
      val float = 3.23F
      val boolean = false
      val char = 'c'
    
      //2、String类型
      val string = "this is a string" //sequence of char
      println(s"Hello, $string")
      println(s"The answer is ${6 * 7}")
    
      println(raw"No\\escape!") // No\\escape!
      println(s"Has\\escape!") // Has\escape!
    
      println(f"${math.Pi}%.5f") //3.14159
    
      val pi = "Pi"
      println(f"$pi is approximately ${math.Pi}%.8f.")
    
      //3、scala中的操作符(operator)和方法(method)
      //scala中的基本类型提供了很多的操作符(比如1 + 2中的+),这些操作符实际上是方法
      1 + 2
      1.+(2)
      1.+(2L) //方法 + 的重载
    
      //4、方法的调用与操作符
      val s = "Hello, world!"
      s.indexOf('o') //这里的indexOf是方法
      s indexOf 'o' //这里的indexOf是操作符
      s indexOf ('o', 5)
    
      //基本类型的部分操作符就是方法,在scala中,所有的方法都可以是操作符
      //是方法还是操作符取决于你怎么用
      //如果s.indexOf('o')这样用,那么indexOf是方法
      //如果s indexOf 'o'这样用,那么indexOf是操作符
    
      s.substring(1)
      s substring (1,2)
    
      //prefix操作符
      -2.0
      (2.0).unary_- //等于-2.0
      //postfix操作符
      s toLowerCase
    
    
      //4、基本类型的其他的操作符
      //4.1 数学运算 + - * / %
      //4.2 关系运算 < > <= >= =
      //4.3 逻辑运算 || && !
      //4.4 位运算 & | ^ ~
    }
    
  • 相关阅读:
    手机网页唤醒app,
    h5 audio进度条
    js判断字符串与字符串相互包含,以及数组是否包含某个元素;
    vue cli 打包项目造成css背景图路径错误
    vue-cli webpack打包不.map文件,iview 项目打包完,图标路径有问题
    常用的活动榜单
    vue-cli的webpack模板项目配置文件分析,配置信息详解
    eclipse怎么debug项目
    什么是前置机,前置机的作用是什么
    jsp中连接数据库及实现增删改查
  • 原文地址:https://www.cnblogs.com/yw0219/p/10067697.html
Copyright © 2011-2022 走看看