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 位运算 & | ^ ~
}

Scala学习笔记(二):object、伴生对象和基本类的更多相关文章

  1. scala 学习笔记十 一 伴生对象

    1.介绍 a.所谓伴生对象就是和某个class同名的object, 并且object 必须和class在同一个scala源文件中. b.在scala中,没有像java中的静态类,静态方法和静态成员等, ...

  2. [Scala]Scala学习笔记五 Object

    1. 单例对象 Scala没有静态方法或静态字段,可以使用object来达到这个目的,对象定义了某个类的单个实例: object Account{ private var lastNumber = 0 ...

  3. scala 学习笔记二 方法与函数

    1.介绍 Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. Scala 中的方法跟 Java 的 ...

  4. [Scala]Scala学习笔记二 数组

    1. 定长数组 如果你需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val str ...

  5. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  6. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  7. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  8. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  10. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

随机推荐

  1. 在现实面前,IT从业者的无奈

    话题:在中国,有多少程序员干到40了? 作者:匿名用户 链接:https://www.zhihu.com/question/33953081/answer/349839986 学历低,计算机理论不高, ...

  2. SVN clean失败解决方法【转】

    原文地址:http://blog.csdn.net/victory08/article/details/42100325/ svn执行clean up后出现提示:svn cleanup failed– ...

  3. Session.Abandon和Session.Clear的实现和区别

    我在网上找了一个比较贴切的描述: Session.Clear()就是把Session对象中的所有项目都删除了,Session对象里面啥都没有.但是Session对象还保留.Session.Abando ...

  4. 微信出现BUG,发送“ 两位数字+15个句号 ”,双方系统会卡崩……

    刚刚,有网友反映称,微信出现了新的bug.例如,在微信中发“两位数字+15个句号”(另一说法是任意数字,任意15个标点符号),如果有华为手机或者安卓手机收到,就会卡死. 用安卓手机的朋友可以试一下,不 ...

  5. DockOne技术分享(二十):Docker三剑客之Swarm介绍

    [编者的话]Swarm项目是Docker公司发布三剑客中的一员,用来提供容器集群服务,目的是更好的帮助用户管理多个Docker Engine,方便用户使用,像使用Docker Engine一样使用容器 ...

  6. 阿里云日志服务采集自建Kubernetes日志(标准输出日志)

    日志服务支持通过Logtail采集Kubernetes集群日志,并支持CRD(CustomResourceDefinition)进行采集配置管理.本文主要介绍如何安装并使用Logtail采集Kuber ...

  7. awk学习[参考转载]

    一.基本示例 1.last -n 5 | awk '{print $1}'   $0代表全部 2.last -n 5 | awk -F:  '{print $1}'    -F代表设置分割符, :代表 ...

  8. git checkout -b mybranch和git checkout mybranch

      创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch更新maste ...

  9. Resource interpreted as Stylesheet but transferred with MIME type text/plain

    今天碰到了Resource interpreted as Stylesheet but transferred with MIME type text/plain 这个错误. 原因:在web中配置了f ...

  10. 如何保留自己对eclipse的个性化设置,在其他工程中使用

    有的个性化设置是在功能的.metadata\.plugins文件夹下保存.所以新建功能后,个性化设置都没有了. 解决办法: 新建一个工程后,调好个性化配置.然后备份整个工程. 以后不要新建工程,直接解 ...