Scala基础语法

如果有很好的了解Java语言,那么将很容易学习Scala。 Scala和Java间的最大语法的区别在于;行结束符是可选的。考虑Scala程序它可以被定义为通过调用彼此方法进行通信的对象的集合。现在,简要地看看什么叫做类,对象,方法和临时变量。

·        对象 - 对象有状态和行为。例如:狗有状态 - 颜色,名字,品种,它有行为 - 摇摆,吠叫,吃东西。对象是类的一个实例。

·        类 - 类可以被定义为一个模板/蓝本以描述行为/指示其类型支持对象。

·        方法 - 方法本质上是一个行为。类可以包含许多方法。它是在将逻辑写入方法中,数据进行操作和所有动作被执行。

·        字段 - 每个对象都有其独特的一组临时变量,这是所谓的字段。对象的状态是由分配给这些字段中的值创建的。

第一个Scala程序:

交互式模式编程:

调用解释不通过一个脚本文件作为一个参数会显示以下提示:

C:>scala
Welcome to Scala version 2.9.0.1
Type in expressions to have them evaluated.
Type :help for more information.
 
scala>

键入下列文字的Scala提示符,然后按Enter键:

scala> println("Hello, Scala!");

这将产生以下结果:

Hello, Scala!

脚本模式编程:

让我们来看一个简单的代码,用于打印简单的一句话:Hello, World!

object HelloWorld {
   /* This is my first java program.  
    * This will print 'Hello World' as the output
    */
   def main(args: Array[String]) {
      println("Hello, world!") // prints Hello World
   }
}

让我们来看看如何保存文件,编译并运行该程序。请按照以下的步骤:

1.  打开记事本,并添加上面代码。

2.  将文件保存为:HelloWorld.scala。

3.  打开命令提示符窗口,然后转到保存程序文件的目录。假设它是 C:>

4.  键入“scalac HelloWorld.scala”,然后按回车编译代码。如果代码中没有错误,命令提示符下将自动换到下一行。

5.  上面的命令将在当前目录中生成几个类文件。其中一个名称为HelloWorld.class。这是一个字节码可以运行在Java虚拟机(JVM)。

6.  现在,键入“scala HelloWorld”来运行程序。

7.  可以看到“Hello, World!”打印在窗口上。

C:> scalac HelloWorld.scala
C:> scala HelloWorld
Hello, World!

基础语法

关于Scala程序,这是非常要注意以下几点。

·        区分大小写 -  Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。

·        类名 - 对于所有的类名的第一个字母要大写。

如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。

示例:classMyFirstScalaClass

·        方法名称 - 所有的方法名称的第一个字母用小写。

如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。

示例:defmyMethodName()

·        程序文件名 - 程序文件的名称应该与对象名称完全匹配。

保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加“.scala”为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。

示例: 假设“HelloWorld”是对象的名称。那么该文件应保存为'HelloWorld.scala“

·        def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。

Scala修饰符:

所有的Scala的组件需要名称。使用对象,类,变量和方法名被称为标识符。关键字不能用作标识符和标识是区分大小写的。Scala支持以下四种类型标识符:

文字标识符

字母数字标识符开始以字母或下划线,可以使用字母,数字或下划线。“$”字符在Scala中是保留关键字,标识符不能使用。以下是合法的字母标识符:

age, salary, _value,  __1_value

以下是非法标识符:

$salary, 123abc, -salary

运算符标识

运算符识别符由一个或多个运算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的运算符标识:

+ ++ ::: <?> :>

Scala编译器将在内部“轧”操作符标识符使它们成为合法的Java标识符,并嵌入$字符。例如,所述标识符:->将内部表示为$colon$minus$greater。

混合标识符

混合标识符由一个字母数字识别符,随后是一个下划线和运算符标识。以下是合法的混合标识符:

unary_+,  myvar_=

在这里,作为一个方法名unary_+定义了一个一元+运算符和myvar_=用来作为方法名称定义了一个赋值运算符。

立即数标识符

一个文字标识是包含在反引号(` . . . `)的任意字符串。以下是合法的文字标识:

`x` `<clinit>` `yield`

Scala关键字:

下面的列表显示在Scala中的保留字。这些保留关键字不可以被用作常量或变量,或任何其他的标识符名称。

abstract

case

catch

class

def

do

else

extends

false

final

finally

for

forSome

if

implicit

import

lazy

match

new

null

object

override

package

private

protected

return

sealed

super

this

throw

trait

try

true

type

val

var

while

with

yield

-

:

=

=>

<-

<:

<%

>:

#

@

Scala中的注释

Scala支持单行和多行注释非常类似于Java。多行注释可以嵌套,但必须正确嵌套。可用的任何注释和所有字符都将被Scala编译器忽略。

object HelloWorld {
   /* This is my first java program.  
    * This will print 'Hello World' as the output
    * This is an example of multi-line comments.
    */
   def main(args: Array[String]) {
      // Prints Hello World
      // This is also an example of single line comment.
      println("Hello, world!") 
   }
}

空行和空格:

仅包含空格,可能带有注释行,被称为一个空行,并且Scala将会完全忽略它。标记可以通过空格和/或注释分开。

换行符:

Scala是面向行的语言,语句可以用分号(;)结束或换行符。分号在声明的结尾通常是可选的。可以键入一个想要的,如果语句出现其本身在一行。在另一方面,如果写在一行多个语句分号是必需的:

val s = "hello"; println(s)

Scala包:

包是一个代码命名的模块。例如,Lift 实用包net.liftweb.util。包声明是在源文件中的第一个非注释行,如下所示:

package com.liftcode.stuff

Scala的包可以被导入,使他们能够在当前编译范围内被引用。下面的语句是导入scala.xml包的内容:

import scala.xml._

可以导入封装的类和对象,例如,从scala.collection.mutable导入HashMap:

import scala.collection.mutable.HashMap

可以从一个单一封装的scala.collection.immutable包导入多个类或对象,例如,TreeMap和TreeSet:

import scala.collection.immutable.{TreeMap, TreeSet}

Scala语言可以安装在任何类UNIX或Windows系统。要安装Scala,必须先安装Java1.5或更高版本安装在计算机上。

Windows上安装Scala:

步骤(1):JAVA设置:

首先,必须设置JAVA_HOME环境变量和将JDK的bin目录添加到PATH变量。要验证是否可以工作,在命令提示符下,键入:java -version,然后按Enter。应该看到类似以下内容:

C:>java -version
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02, mixed mode)
 
C:>

接下来测试,看看已安装Java编译器。输入javac -version。应该看到类似以下内容:

C:>javac -version
javac 1.6.0_15
 
C:>

步骤(2):SCALA设置:

接下来可以下载Scala从以下网址http://www.scala-lang.org/downloads. 在写这篇教程的时候,下载的是scala-2.9.0.1-installer.jar,并把它放在 C:/> 目录。请确保有管理员权限进行。现在在命令提示符下键入以下命令执行:

C:>java -jar scala-2.9.0.1-installer.jar
 
C:>

上面的命令将显示一个安装向导,该向导将引导在Windows计算机上安装。在安装过程中,它会询问许可协议,接受它,并进一步询问Scala将要安装的 路径。选择的默认给出的路径 C:ProgramFilesscala,可以选择一个合适的路径。最后打开一个新的命令提示符,然后键入scala -version,然后按Enter键。应该会看到以下内容:

C:>scala -version
Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL
 
C:>

恭喜已经成在Windows机器上安装Scala。下一节将演示如何在Mac OS X和Unix / Linux机器上安装Scala。

在Mac OS X和Linux上安装Scala

步骤(1):JAVA设置:

请确保拥有Java JDK1.5或更高版本已经计算机上安装并设置JAVA_HOME环境变量,以及JDK的bin目录添加到PATH变量。要验证是否安装正确,在命令提示符下,键入java -version,然后按Enter。应该看到类似以下内容:

$java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Server VM (build 1.5.0_22-b03, mixed mode)
$

接下来,测试,看看已安装的Java编译器。输入javac-version。应该看到类似以下内容:

$javac -version
javac 1.5.0_22
javac: no source files
Usage: javac <options> <source files>
................................................
 
$

步骤(2):SCALA设置:

接下来可以下载Scala 从以下网址 http://www.scala-lang.org/downloads. 在写这篇教程的时候,下载的是Scala-2.9.0.1-installer.jar,并把它放在/tmp目录。请确保拥有管理员权限才能进行操作。现在,在命令提示符下键入以下命令执行:

$java -jar scala-2.9.0.1-installer.jar
Welcome to the installation of scala 2.9.0.1!
The homepage is at: http://scala-lang.org/
press 1 to continue, 2 to quit, 3 to redisplay
1
................................................
[ Starting to unpack ]
[ Processing package: Software Package Installation (1/1) ]
[ Unpacking finished ]
[ Console installation done ]
 
$

在安装过程中,它会询问许可协议,接受它键入1,它会问在哪里Scala安装。这里是在目录/usr/local/share,可以选择一个合适的路径。最后,打开一个新的命令提示符,然后键入Scala的-version,然后按Enter键。应该看到以下内容:

$scala -version
Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL
 
$

恭喜,已经在UNIX/Linux机器上安装了Scala。

如果有很好的了解Java语言,那么将很容易学习Scala。 Scala和Java间的最大语法的区别在于;行结束符是可选的。考虑Scala程序它可以被定义为通过调用彼此方法进行通信的对象的集合。现在,简要地看看什么叫做类,对象,方法和临时变量。

·        对象 - 对象有状态和行为。例如:狗有状态 - 颜色,名字,品种,它有行为 - 摇摆,吠叫,吃东西。对象是类的一个实例。

·        类 - 类可以被定义为一个模板/蓝本以描述行为/指示其类型支持对象。

·        方法 - 方法本质上是一个行为。类可以包含许多方法。它是在将逻辑写入方法中,数据进行操作和所有动作被执行。

·        字段 - 每个对象都有其独特的一组临时变量,这是所谓的字段。对象的状态是由分配给这些字段中的值创建的。

第一个Scala程序:

交互式模式编程:

调用解释不通过一个脚本文件作为一个参数会显示以下提示:

C:>scala
Welcome to Scala version 2.9.0.1
Type in expressions to have them evaluated.
Type :help for more information.
 
scala>

键入下列文字的Scala提示符,然后按Enter键:

scala> println("Hello, Scala!");

这将产生以下结果:

Hello, Scala!

脚本模式编程:

让我们来看一个简单的代码,用于打印简单的一句话:Hello, World!

object HelloWorld {
   /* This is my first java program.  
    * This will print 'Hello World' as the output
    */
   def main(args: Array[String]) {
      println("Hello, world!") // prints Hello World
   }
}

让我们来看看如何保存文件,编译并运行该程序。请按照以下的步骤:

1.  打开记事本,并添加上面代码。

2.  将文件保存为:HelloWorld.scala。

3.  打开命令提示符窗口,然后转到保存程序文件的目录。假设它是 C:>

4.  键入“scalac HelloWorld.scala”,然后按回车编译代码。如果代码中没有错误,命令提示符下将自动换到下一行。

5.  上面的命令将在当前目录中生成几个类文件。其中一个名称为HelloWorld.class。这是一个字节码可以运行在Java虚拟机(JVM)。

6.  现在,键入“scala HelloWorld”来运行程序。

7.  可以看到“Hello, World!”打印在窗口上。

C:> scalac HelloWorld.scala
C:> scala HelloWorld
Hello, World!
from: http://www.yiibai.com/scala/scala_basic_syntax.html

Scala基础教程(一):简介、环境安装相关推荐

  1. Docker教程(二) Docker环境安装

    Docker教程(二) Docker环境安装 本文链接:https://blog.csdn.net/yuan_xw/article/details/77248243 Docker教程(二) Docke ...

  2. [RHEL7基础篇-1] 简介及安装

    [RHEL7基础篇-1] 简介及安装 Linux历史简介 Redhat Linux CentOS Fedora Ubuntu与Debian Unix家族及类Unix系统 Linux版本 Linux实验 ...

  3. Scala基础教程--10--数组列表与函数式编程

    Scala基础教程–10–数组列表与函数式编程 章节目标 掌握数组, 元组相关知识点 掌握列表, 集, 映射相关知识点 了解迭代器的用法 掌握函数式编程相关知识点 掌握学生成绩单案例 1. 数组 1. ...

  4. Scala基础教程--06--类与对象的详解

    Scala基础教程–06–类与对象的详解 章节目标 掌握类和对象的定义 掌握访问修饰符和构造器的用法 掌握main方法的实现形式 掌握伴生对象的使用 掌握定义工具类的案例 1. 类和对象 Scala是 ...

  5. Scala基础教程--18--集合(二)

    Scala基础教程–18–集合(二) 章节目标 掌握Iterable集合相关内容. 掌握Seq集合相关内容. 掌握Set集合相关内容. 掌握Map集合相关内容. 掌握统计字符个数案例. 1. Iter ...

  6. QIIME 2教程. 01简介和安装 Introduction Install(2020.11开始更新)

    写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用20000+次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...

  7. QIIME 2教程. 01简介和安装 Introduction Install(2020.11)

    文章目录 写在前面 QIIME 2的优势 QIIME 2用户文档(版本:2020.11) 视频:QIIME 2用户文档01.1 简介 入门指南 什么是QIIME 2? 核心概念 数据文件: QIIME ...

  8. php基础教程 第一步 环境配置及helloworld

    PHP 是服务器端脚本语言.全称为 Hypertext Preprocessor 为超文本预处理器. 据说php8不久后也要发布了,趁着8还没有发布赶紧写一个php5到php7(在基础教程写完后将写p ...

  9. Nacos教程_1 简介和安装

    教程原稿–https://gitee.com/fakerlove/joker-nacos 文章目录 nacos 教程 1. 简介 1.1 介绍 1.2 安装 下载 linux版本 windows版本 ...

最新文章

  1. 智能网联汽车高精地图白皮书(2020)
  2. 全球缺芯大潮中,以软代硬能否另辟蹊径?
  3. 特征工程(三)Doc2Vec
  4. Linux下Apache日志分析工具--AWStats安装使用
  5. 一文看懂70年的人工智能简史
  6. 基于HTML5的3D网络拓扑树呈现
  7. 理解Android系统的进程间通信原理------RPC机制
  8. “网红” WebAssembly 与 K8s 如何实现双剑合璧?
  9. BugKuCTF WEB 管理员系统
  10. C#方法重载(overload)方法重写(override)隐藏(new)
  11. python中的字体英文名_对python opencv 添加文字 cv2.putText 的各参数介绍
  12. android ——多线程编程
  13. 如何下载Lucene.net源码
  14. 如何打开电脑上的安全策略
  15. 计算机网络—停止等待协议(思维导图)
  16. 软件测试管理知识总结
  17. 《计算传播学导论》读书笔记:第六章 网络传播模型与机器学习框架
  18. 支付宝"手机网站支付"主域名申请了,二级域名还要申请吗
  19. 无货源开店已确认违法
  20. 本地安装青龙面板教程【详细版】2022-5.5

热门文章

  1. IDEA 启动 Tomcat 乱码 解决办法
  2. Quartz-Trigger详解
  3. Spring-AOP 静态普通方法名匹配切面
  4. 11.10错题集(7-函数)
  5. python学习笔记(十一)——正则表达式
  6. Docker 安装JDK1.8
  7. python支付系统开发,python支付整合开发包
  8. animiz动画制作软件_实用动画制作软件分享——万彩动画大师
  9. TypeScript学习笔记3:运算符
  10. mysql 事物gljbie_图片转成base64格式上传至数据库