`

scala语言基础

 
阅读更多

 

 scala基础(一)

使用class关键字后面跟上类型和构造参数来定义类。

class Greeter(prefix: String, suffix: String) {
  def greet(name: String): Unit =
    println(prefix + name + suffix)
}

 方法greet的返回类型为Unit,也就是说没有任何有意义的东西返回。同Java和C中的void使用方法类似。然后就可以使用关键字new来创建实例了。

 

val greeter = new Greeter("Hello, ", "!")
greeter.greet("Scala developer") // Hello, Scala developer!
 

 

Case Classes

Scala有一种特殊类型的类叫做"case" class。默认情况下,case class是不可变的(immutable),并且是按值比较的(compared by value)。你可以通过case class关键字来定义class classes。

case class Point(x: Int, y: Int) {

}

object PointMain {
  def main(args: Array[String]): Unit = {
    val point = Point(1, 2)
    val anotherPoint = Point(1, 2)
    val yetAnotherPoint = Point(2, 2)

    if (point == anotherPoint) {
      println(point + " and " + anotherPoint + " are the same.")
    } else {
      println(point + " and " + anotherPoint + " are different.")
    }
    // Point(1,2) and Point(1,2) are the same.

    if (point == yetAnotherPoint) {
      println(point + " and " + yetAnotherPoint + " are the same.")
    } else {
      println(point + " and " + yetAnotherPoint + " are different.")
    }
    // Point(1,2) and Point(2,2) are different.
  }
}

 

 对象

对象时它们自身定义的单一实例。你可以认为它们是他们自己的类的单例。你可以使用object关键字定义对象,可以直接使用对象的名字来引用它:

object IdFactory {
  private var counter = 0
  def create(): Int = {
    counter += 1
    counter
  }

  def main(args: Array[String]): Unit = {
    val newId: Int = IdFactory.create()
    println(newId)
    val newerId: Int = IdFactory.create()
    println(newerId)
  }
}

 

Traits

Traits是包含特定字段和方法的类型,多个Traits可以被组合。我们可以用trait关键字来定义traits。感觉类似于java中的接口。trait中的方法可以只有声明,也可以有默认实现。通过extends关键字来扩展trait,通过override关键字来覆盖traits中的实现。

trait GreeterTrait {
  // method in trait only defines the parameter list and return type
  def greetInterface(name: String): Unit

  // method in trait can also have default implementations
  def greet(name: String): Unit = {
    println("Hello, " + name + "!")
  }
}

abstract class DefaultGreeter extends GreeterTrait

class CustormizableGreeter(prefix: String, suffix: String) extends GreeterTrait {
  override def greetInterface(name: String): Unit = {
    println(prefix + name + suffix)
  }

  override def greet(name: String): Unit = {
    println("in greet " + prefix + name + suffix)
  }
}

object GreeterTraitMain {
  def main(args: Array[String]): Unit = {
    val custormizableGreeter = new CustormizableGreeter("How are you, ", "?")
    custormizableGreeter.greet("yuxuecheng")
  }
}

 

 Main Method

main方法是一个程序的入口。Java虚拟机需要一个名为main的主方法,有一个参数——一个字符串数组。用一个对象,我们可以像下面这样定义main方法:

object Main {
  def main(args: Array[String]): Unit =
    println("Hello, Scala developer!")
}

 

 

 

 

 

分享到:
评论

相关推荐

    Scala语言基础|零基础入门.pptx

    Scala语言基础new.pptx,希望大家能够喜欢,

    大数据课程-Scala编程基础-2.Scala语言基础_lk_edit.ppt

    大数据课程——Scala编程基础,教师版,提供教学大纲、教案、教学设计、实训文档等,课程内容包含教学准备环境、软件安装、作业、教学文档、演示视频,花费巨额时间亲自制作,下载后可私信提供上述所有教学资料,可...

    大数据技术之Spark编程基础-第2章-Scala语言基础(共155页).pptx

    【课程列表】 2.1 Scala语言概述 2.2 Scala基础 2.3 面向对象编程基础 2.4 函数式编程基础

    Scala编程实战.zip

    学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景,提供了大量的Scala实例,同时,也给出底层的原理和相关的...

    快学Scala课后习题答案

    快学Scala课后习题答案,包含各个章节答案word版和pdf版

    scala入门书籍

    Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久之前编程语言还...

    Scala语言入门

    Scala语言入门

    大数据课程-Scala编程基础-1.Scala语言初识_lk_edit.ppt

    大数据课程——Scala编程基础,教师版,提供教学大纲、教案、教学设计、实训文档等,课程内容包含教学准备环境、软件安装、作业、教学文档、演示视频,花费巨额时间亲自制作,下载后可私信提供上述所有教学资料,可...

    scala编程基础

    scala语言基础,便于初学者和高级程序员更加深入学习Scala语言

    Scala编程实战PDF

    本书向读者介绍如何省时省力地使用...书中囊括250个实用技巧以及700多个代码实例,覆盖了开始学习Scala语言、类库和工具时*常见的问题。本书可作为学习使用JVM语言的理想参考书,同时也适用于有经验的Scala开发者。

    scala编程基础开发教程

    scala 编程基础课程,通过此文档,你可以快速掌握scala语言的基础开发

    Spark 编程基础(Scala 版)-机房上机实验指南

    Scala语言基础:由于Spark最初是使用Scala开发的,本书将详细介绍Scala的基础知识,包括语法、数据类型、控制结构、函数式编程等。 Spark与Scala的集成:展示如何在Scala环境下搭建Spark开发环境,包括安装、配置...

    大数据课程-Scala编程基础-4.Scala数据结构_lk_edit.ppt

    大数据课程——Scala编程基础,教师版,提供教学大纲、教案、教学设计、实训文档等,课程内容包含教学准备环境、软件安装、作业、教学文档、演示视频,花费巨额时间亲自制作,下载后可私信提供上述所有教学资料,可...

    Scala 语言文档.ctb

    大数据利器之scala开发语言文档,非常详细,一步步讲解。 spark开发语言scala,同样的结果java100行,scala10行。需要樱桃笔记打开

    Scala 基础语法

    如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法。 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的。 我们可以认为 Scala 程序是对象的集合,通过...

    Scala基础与实践

    Scala是一门多范式的编程语言,一种类似java的编程语言 ,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

    Scala语言视频百度网盘

    第01阶段 :Scala 入门 第02阶段:Scala 的函数式编程 第03阶段:Scala 的面向对象编程 第04阶段:Scala的高级基础一 第05阶段:Scala的高级基础二

    scala.rar基础知识,笔记很好的详细

    Scala学习资源Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久...

    Scala 基础.pdf

    Spark 和 Scala 能够紧密集成, 例如 使用Scala语言操作大数据集合的时候,用户可以像是在操作本地数据集那样简单操作Spark上的分布式数据 集-RDD(这个概念是Spark 批处理的核心术语),继而简化大数据集的处理难度...

    scala知识思维导图

    Scala语言的思维导图,分理论,安装,基础,函数和API五部分,对应语言的掌握足够,另附有代码文件

Global site tag (gtag.js) - Google Analytics