zoukankan      html  css  js  c++  java
  • Scala 入门详解

      Scala 入门详解

      基本语法

    Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的

    Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递。类,对象,方法,实例变量的概念:

    对象 - 对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。

    - 类是对象的抽象,而对象是类的具体实例。

    方法 - 方法描述基本的行为,一个类可以包含多个方法。

    字段 - 每个对象都有它唯一的实例变量集合,即字段。对象的属性通过给字段赋值来创建。 

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

    类名 - 对于所有的类名的第一个字母要大写。采用驼峰命名。 

    方法名 - 所有的方法名称的第一个字母用小写,采用驼峰命名。

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

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

      标识符

    Scala 可以使用两种形式的标志符,字符数字和符号

    " "之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,当使用scala关键字命名时必须加"区别

      Scala 注释

    Scala 类似 Java 支持单行和多行注释。多行注释可以嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。

      换行符

    Scala是面向行的语言,语句可以用分号(;)结束或换行符。Scala 程序里,语句末尾的分号通常是可选的。

      Scala 包

    定义包

    Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:

    第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。 比如:

    package com.myDemo

    class HelloWorld { }

    第二种方法有些类似 C#,可以在一个文件中定义多个包,如:

    package com.myDemo {
    class HelloWorld
      }

    引用包

    Scala 使用 import 关键字引用包:

    import语句可以出现在任何地方,而不是只能在文件顶部。import的效果从开始延伸到语句块的结束。这可以大幅减少名称冲突的可能性。

    import java.awt._  // 引入包内所有成员

    import java.awt.{Color, Font}   //引入部分成员,Color,Font成员

    import java.util.{HashMap => JavaHashMap}   // 重命名成员

    import java.util.{HashMap => _, _} //隐藏成员:引入了util包的所有成员,但是HashMap被隐藏了

      变量

    在 Scala 中,使用关键词 "var" 声明变量,使用关键词 "val" 声明常量,val相当于Java中的final变量,一旦被赋值就不能修改。

    constant为定义常量的关键字

      函数

    Scala 函数声明格式如下:

    def functionName ([参数列表]) : [return type]={   }

    如果不写等于号和方法主体,那么方法会被隐式声明为"抽象(abstract)",包含它的类也是一个抽象类型.

      对象

    普通对象使用class定义,默认public,Unit(void)即没有返回值

    Scala没有静态成员,Singleton单例对象使用object定义。

      占位符语法

    scala的函数中用“_”作为占位符,这个占位符可以用于代替传入的参数

      数组

    val arrarys=new Array[String](3); //arrarys为val,但内部的数组值是可变的

    arrays(0)="num1";   //数组赋值取值用()

      Scala操作符等价于方法,所以任意方法都可以以操作符的形式使用

    1 + 2     //(1).+(2) 在只有一个参数的情况下,可以省略 . 和 ()

    scala中无++,-- 只能写成i = i+1,i += 1

      String Interpolation String (插值器)

    例如:

    val name = "James"

    println(s"Hello, $name")    // Hello, James

      右操作符 "::"  以"::"结尾的方法是右结合

    :: 该方法被称为cons,意为构造,向队列的头部追加数据,创造新的列表。

    用法为 x::list,其中x为加入到头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1(x::list等价于list.::(x)

    :+和+: 两者的区别在于:+方法用于在尾部追加元素,+:方法用于在头部追加元素,和::很类似,但是::可以用于pattern match,而+:则不行。 +:和:+ 只要记住冒号永远靠近集合类型就可以了。

    ++ 该方法用于连接两个集合,list1++list2

    ::: 该方法只能用于连接两个List类型的集合

      scala三引号的作用

    对于大量转义字符及换行的字符串可以使用三个双引号,三个双引号对里面的换行、转义符等原样输出左对齐可以使用|进行对其

    例如:  val hello = """|Welcome to

                                           |Scala, "Hello World" """ ;

                                          

      scala可以通过“*”来定义函数的可变参数

    数组当做变量直接传入时,使用“:_*”就是告诉解释器,将数组的中的元素当做一个个参数传入

      函数调用

    如果调用函数时,不需要传递参数,则scala允许调用函数时省略括号,如:

    for(arg: args) { println(arg); }

    args.foreach((arg:String) =>println(arg));

    args.foreach((arg) =>println(arg)); //省略类型

    args.foreach(println); //省略参数列表

      apply用法

    类中定义了apply的方法后,调用这个方法不需要显示的写apply。直接写"实例名(参数列表)"的形式就好。

    通常使用这种方式来构造类的对象。

    参考资料:http://www.runoob.com/scala/scala-tutorial.html

  • 相关阅读:
    JQury RadioButton
    Oracle 错误
    C#基础 ASP.NET基本技巧
    后台管理系统框架模版(静态页)
    复习串讲 day02:搭建邮件服务、空客户端、搭建数据库服务、数据库基础操作
    ENGINEER 004:Linux命令字的来源、alias别名设置
    ENGINEER 003:配置IPv6地址
    ENGINEER 002: 配置用户环境 --- 配置聚合连接
    ENGINEER 001:SELinux安全机制
    命令行基础
  • 原文地址:https://www.cnblogs.com/zengming/p/7398873.html
Copyright © 2011-2022 走看看