Scala
2019-12-31 09:24:47 23 举报
AI智能生成
scala
作者其他创作
大纲/内容
算术运算
四则运算
1+2*3/4-5
求摸
3%2
乘方运算
math.pow(2,3)
绝对值
math.abs(-1)
三角函数
math.cos(math.Pi)
对数函数
math.log(100)
输入输出
输出
println,print, printf
输出
scala.io.StdIn
写文件
java.io.PrintWriter
读文件
scala.io.Source
导包
引入全部对象 (import scala.io._)
引入某个对象 (import scala.io.StdIn)
引入某些对象 (import scala.io.{StdIn,Source})
引入后重命名 (import scala.io.{Source => Src,StdIn})
隐藏某些对象 (import scala.io.{Source => _,StdIn})
隐式引入 (java.lang_,scala._,Predef._默认被引入)
语法规则
标识符
标识符由字母和数字组成,遵循驼峰命名规则。
类和对象的名称以大写字母开头。
方法的名称以小写字母开头。
$可以被用作字母,但要慎重使用。
因为有些特殊符号如 + 的内部表示为 $plus
当存在标识符和关键字冲突时,可以加上``来避免冲突
注释
多行注释用/*开头,以*/结尾。
单行注释用//开头。
数据类型
Byte,Short,Int,Long,Float,
Double,Char,String,Boolean.
Double,Char,String,Boolean.
Unit(表示无值与C语言void等同,用作无返回值的方法的返回类型),
Null(AnyRef的子类,null是它的唯一对象),
Nothing(所有类型的子类,它没有对象),
Any(所有其他类的超类),
AnyRef(所有引用类reference class的超类)
Null(AnyRef的子类,null是它的唯一对象),
Nothing(所有类型的子类,它没有对象),
Any(所有其他类的超类),
AnyRef(所有引用类reference class的超类)
变量
常量val
常量在程序中不可以被重新指向
变量var
变量可以被重新指向新的对象
符号
()
用来表示优先级,传入函数参数序列,以及传入容器的下标或key
[]
用来表示容器的元素的数值类型。
{}
用来划分作用域,{}的返回值为最后一个语句的值
.
表示方法,可以用空格代替
:
用来说明变量的数据类型
=>
用来表示匿名函数的映射关系
->
用来指定映射Map中的键值关系
<-
用来指定for表达式的迭代器
_
下划线_在Scala中被用作占位符表示匿名函数参数或作为引入package的通配符
编译
进入scala解释器交互式执行
保存成HelloWorld.scala的脚本。然后在cmd中输入 scala HelloWorld.scala 执行
使用scalac进行编译然后执行。scalac HelloWorld.scala,生成HelloWorld.$class和HelloWorld.class的JVM文件,再用 scala -classpath . HelloWorld 执行
使用sbt或者maven等项目管理工具将项目及其依赖编译成jar包,再通过java -jar HelloWorld.jar执行
数据结构
Array
定长数组: 有序,可变类型,长度不可变。
ArrayBuffer
不定长数组:有序,可变类型,长度可以扩展
List
列表:有序,不可变类型
Set
无序,不可变类型。
Map
映射:无序,不可变类型。
Tuple
元组:有序,不可变类型,可以存放不同数据类型元素
分支主题
字符串
0 条评论
下一页