Scala开篇——Scala的基础介绍

·  阅读 52

「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战

什么是scala,Scala是什么

Scala 是一门现代的多范式语言,志在以简洁、优雅及类型安全的方式来表达常用的编程模型。它平滑地集成了面向对象函数式语言的特性。

鉴于一切值都是对象,可以说Scala是一门纯面向对象的语言。对象的类型行为是由类和特质来描述的。类可以由子类化和一种灵活的、基于mixin的组合机制 (它可作为多重继承的简单替代方案) 来扩展。 在scala中函数的启动的mian函数需要放在object修饰当中。

// hello scala 函数

object HelloScala{
  def main(args: Array[String]): Unit = {
       println("hello scala")
  }
}
___________________________________________________________

输出:

hello scala
复制代码
Scala源码中包含了main方法,在编译后自动形成了public static void main 

Scala在编译源码时,会生成两个字节码文件,静态main方法执行另一个字节码文件中的成员main方法 

Scala是完全面向对象的语言,那么没有静态的方法,只能通过模拟生成静态方法
复制代码

编译时将当前类生成一个特殊的类==>HelloScala$,然后创建对象来调用这个对象的main方法

一般情况下,将加$的类的对象,称之为"伴生对象" 伴生对象中的内容,都可以通过类名访问,来模拟java中的静态语法

伴生对象的语法规则:使用object声明[加上就一定能够使用类名来访问]

public static void main(String [] arrays){方法体}
复制代码
  • scala中没有public关键字,默认所有的访问权限都是公共的
  • scala中没有void关键字,采用特殊的对象模拟:Unit
  • scala中声明方法采用关键字def

方法后面的小括号是方法的参数列表

scala中参数列表的声明方式和java不一样

java:String 参数名
scala:参数名:类型

 java  中方法的声明和方法体直接连接
 scala 中方法的声明和方法体是通过等号连接的
 scala 中将方法的返回值类型放置在方法声明的后面,使用冒号连接
 scala 方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后自动加分号),这也体现出Scala的简洁性。
 如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号
复制代码

变量的命名

/**
  * 测试标识符
  * Scala取名可以以(+-*除#)开头,例如把变量命名为+-
  */

    def main(args: Array[String]): Unit = {

        // 首字符为操作符(比如+ - * / ),后续字符也需跟操作符 ,至少一个(反编译)
        // scala中可以使用特殊符号作为标识符,其实是将特殊符号在编译时进行了转换
        val +-*/ = 123
        println(+-*/)

        val %@# = true
        println(%@#)

        // scala中的下划线_有特殊的用途,不能独立当成变量名来使用
        val _ = "123"
        val a = "abc" + _

        println(a) //输出com.jacquesh.chapter02.Scala03_Name$$$Lambda$5/10791211@5a99da

        // 用反引号`....`包括的任意字符串,即使是关键字(39个)也可以作为标识符

        val `private` = 123

        println(`private`)

    }
复制代码
分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改