Scala学习笔记(一)

  

(适合java工程师了解,目的是看懂scala代码以及可以做一些小的程序)

首先是从"Hello,world"开始.

Scala的hello,world是这么写的:

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!") // prints Hello World
   }
}
此程序的运行结果是:hello,world.
对比java的Hello,world来看
声明类:object HelloWorld = class HelloWorld
主方法:def main(args: Array[String]) = public static void main(String[] args)

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

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

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

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

      示例:class MyFirstScalaClass

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

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

      示例:def myMethodName()

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

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

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

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

对比java来看:
   1)同样区分大小写
   2)java里类名的第一个字母也要大小写
   3)java里驼峰式的命名规则
   4)这个并没有强制要求
   5)java也是从main的主方法进去
再从导包以及声明包来看
  

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

  package com.liftcode.stuff

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

  import scala.xml._    (注意scala里的"_" == java里的"*")
与java一模一样!
但是scala导包还有一个特点,如下

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

  import scala.collection.immutable.{TreeMap, TreeSet}
按照这个语法可以导入同一包下的多个对象
接下来是scala中的数据类型,与java如出一辙;

接下来是变量的声明:

  Scala的变量声明有不同的语法,它们可以被定义为值,即,常量或变量。下面是使用var关键字来定义一个变量的语法:

  var myVar : String = "Foo"

  在这里,myVar使用关键字var声明。这意味着它是一个可以改变值的变量,被称为可变变量。下面是使用val关键字来定义变量的语法:

  val myVal : String = "Foo"
scala包含两种变量声明的方法:一个是var一个是val
var是不可变的常量 val是可变的变量 他们代表着任何数据类型,也就是说,当scala的编译器在编译的时候会给var和val赋予最适合的数据类型,这也是scala的一个特点
当然 scala也可以自己设定数据类型
就像上面的例子:
var myVar : String = "Foo"
读出代码来就是:设定一个String的不可变常量,他的值为"Foo"

  Scala变量可以有三种不同的范围,这取决于它们正在使用的地方。它们可以存在于字段,方法参数和局部变量。下面是关于每种类型的适用范围的详细信息:

  字段:

  字段是属于一个对象的变量。该字段是从对象中的所有方法中访问。字段也可以是具体取决于访问修饰符字段与声明的对象外访问。对象字段既可以是可变的或不可变的类型,可以使用var 或 val两种定义。

  方法参数:

  方法的参数是变量,其用于传递方法内的值在方法被调用时。方法参数被从方法唯一传入,但传递的对象可从外面,如果从外面的方法有一个引用对象。方法参数始终是可变的并由val关键字定义。

  局部变量:

  局部变量是在方法内声明的变量。局部变量只能在方法中访问,但可以访问创建方法的对象(如果从方法中返回它们)。局部变量既可以是可变的或不可变的类型,可以使用var或val两个关键字定义。

接下来是运算符:
  scala最常用的运算符与java一致,所以我只把截图放在这里并不比较.如果有特殊需求(如:位运算符等)请自行解决
算术运算符:

 

Scala里也有运算符优先级:

  总结一句就是:先算乘除后算加减,有括号先算括号里的

本篇参考自:http://www.yiibai.com/scala/scala_environment_setup.html(易佰教程)


posted @ 2017-06-05 14:25  dade丶  阅读(244)  评论(0编辑  收藏  举报