1.声明值和变量值
val name:type=initvalue //不可修改变量
var name:type=initvalue // 可修改
其中名字name以字母或下划线开头,后面跟着字母、下划线或数字类型type可省略,
scala自动会区分不同类型初始值initvalue
val a= 1
var b: Double=1
var c="Helloworld"
2.常用类型8种数值类型
Byte Char Short Int Long Float Double Boolean
类型与Java不同的是,这些类型都是类,自带有方法
1.toString()//返回字符串"1"
1.to(3) //返回Range(1,2,3)
3.算数和操作运算符重载,与Java不同点
1)么有++和--
2)操作符其实是方法,a+b其实是a.+(b)
4.条件表达式
if/else与java一样,不过在scala中可以把if/else表达式的值赋值给变量
val s=if (x>0) 1 else -1
5. 块表达式也可以赋值
val a={
val b=1
val c=5b+c
}
6.输入和输出
输出:与c++类似,print(),printf(),println()
输入: readline(),八个类型read,如readInt,readDouble()....
val name=readLine("your name:")
println("name is "+name)
7. 循环
while(n>0){....}
for(i< 1 to 10){....}//循环1到10
for(i< myarray){....}
myarray.foreach(i=>{....})
8. 函数
def methodName(arg1:type1,arg2 type2) returnType={.....result}
函数的定义关键字def开始,后面跟着方法名和括号的参数列表。参数名:参数类型
参数列表后跟着一个冒号和一个返回结果类型
def abs(x:Double):Double= {if(x>=0) x else -x} //可以省略括号
9.默认参数、带名参数、变长参数
def corde(str:String,left:String ="[",right:String ="]") =left +str +right
此时直接调用 corde("Hello")会得到"[Hello]"另外可以再使用函数的时候,指定参数名,就不需要跟参数列表顺序完全一致
println corde(left="<<<", str="Hello", right =">>>")
还可以实现混用未命名参数和带名参数,注意未命名参数要排在前面
corde("Helo", right="]]") //输出"[ Hello]]
scala 可以实现变长参数,可以让函数接受任意多的参数,如下
def sum(args: Int*)={
var result =0
for(arg <args)
result+ = arg
result
}
注意以下的用法的正确性
val s=sum(1,4,9,16,25)//正确
val ss=sum(1 to 5) //错误,不接受序列
val sss=sum(1 to 5:_*) //正确,追加:_*做参数序列
10.过程
过程即函数体在花括号前没有=号,返回类型为Unit,也就是过程不返回值
def book(s: String){
//没等号,这个是过程,用来打印书名号
println("<<"+s+">>")
}
11.赖值当val被声明为lazy时,直到我们首次对它取值,才开始初始化
lazy val word = scala.io.source.fromfile("/usr/share/words").mkString
//words 没有被调用,文件也不会打开,不会进行初始化
12.异常
scalar中的异常与java相似try{}catch{}finally{}不同的是 scala没有受检异常,即不需要说函数或方法可能会抛出某种异常,且 scala捕获异常的语法采用的是模式匹配
try {
process(new URL("http://www.baidu....."))
}catch{
case_:MalformedURLException =>println("bad url ")
case ex:IOException =>ex.printstacktrace()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。