「这是我参与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`)
}
复制代码