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. Linux运维笔记(一)网络基础知识

    网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...

  2. Wannafly挑战赛25游记

    Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...

  3. java后端发送请求

    package com.ty.mapapisystem.util; import java.io.BufferedReader;import java.io.FileInputStream;impor ...

  4. C++ map<key , value> key值为指针

    STL中map的key能否用char *呢?当然可以! 在程序中需要用到一个map,本来是这样写的, map<string, int> mapStr; 为了追求效率,把string改成了c ...

  5. [模板][P3690]Link Cut Tree

    Description: 给定n个点以及每个点的权值,要你处理接下来的m个操作.操作有4种.操作从0到3编号.点从1到n编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和 ...

  6. zookeeper leader选举机制

    最近看了下zookeeper的源码,先整理下leader选举机制 先看几个关键数据结构和函数 服务可能处于的状态,从名字应该很好理解 public enum ServerState { LOOKING ...

  7. Delphi创建ActiveX控件,实现安全接口及无界面代码

    Delphi创建OCX控件非常的方便,但IE调用时弹出的安全认证非常麻烦,有时OCX也不需要界面,IE调用时需要隐藏,非常不方便.在DELPHI中创建OCX实现安全接口和创建事件中修改部分代码 实现安 ...

  8. Knockout.Js官网学习(selectedOptions绑定、uniqueName 绑定)

    selectedOptions绑定 selectedOptions绑定用于控制multi-select列表已经被选择的元素,用在使用options绑定的<select>元素上. 当用户在m ...

  9. WinPcap权威指南(一)

    WinPcap是一个开源的网络抓包模块,顾名思义,它只能工作在Windows下,但本文介绍的知识并不局限于任何操作系统和开发语言,因为网络协议本身是没有这些区别的.阅读本指南之前,请先下载WinPca ...

  10. 版本适配 sdk version MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...