经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Scala » 查看文章
Scala-Unit-2-Scala基础语法1
来源:cnblogs  作者:给你一个公主抱  时间:2019/1/7 9:46:07  对本文有异议

一、Scala程序的开始->HelloScala

  这里的操作如同java的helloworld程序,直接放代码!

  1. object HelloScala{
  2. def main(args:Array[String]){
  3. println("HelloScala")
  4. }
  5. }

  在命令行操作中输入命令:

  scalac HelloScala.scala

  scala HelloScala

 

二、Scala的数据类型

  Scala与java相同,有八种基本数据类型:

  Byte/Char/Short/Int/Long/Float/Double/Boolean

  还有Unit类型(与java中void相似),表示无值,主要用于不返回任何结果的结果类型

  注意:Scala中没有包装类

 

三、Scala定义变量

  两个关键字:val、var

  val:定义的变量值是不可变的

  var:定义的变量值是可变的

  eg.  val a:Long = 1    var b:String = "我很帅"

  注意:Scala编译器会自动的推断数据类型!!

  eg.  val a = 1 (a自动为Int类型)

      var s = "you are ugly" (s自动为String类型)

         val h = println("cool")  (h自动为Unit类型)

 

四、条件表达式(一下命令都是在windows命令行操作中运行的)

  if语句:

  val x = 2

  val y = if(x>0) 1 esle 2

  val m = if(x<0) -1 if(x>1) 1 else 0

  混合类型:

  val z = if(x>0) "true" else 1

  输出语句为: z:Any = "true"

  注意:Any相当于Java中的object基类,它包含Anyval和AnyRef

       Anyval:包含scala所有类型、AnyRef:包含Scala clsaaes与Java classes

 

五、块表达式

  相当于java中的程序快,在Scala中用{}包裹的一些列表达式及块表达式,块中最后一个表达式的值就是块的值。

  可以在idea中创建Scala工程展示

  sbt版本:1.1.0  scala版本:2.11.8

  创建Scala类注意,kind类型选择object

 

六、循环(一下是在Windows命令行操作中运行,其中”<-“相当于java中for循环变量的意思)

  val rs = 1 to 10  //Scala会创建一个包含从1到10的10个元素的数组rs

  for (x <- rs) println(x)  //便利数组rs,并输出每个元素

 

  val arr = Array(1,3,5)  //创建不可变数组arr,包含1,3,5三个元素

  for (i <- arr) println(i)  //便利数组arr并输出每个元素

 

  高级for循环:

  for(i <- 1 to 5 ;j <- 1 to 10 if i != j) print((10 * i + j) + " ")

  

  for(i <- 1 to 10) yield i*10    //关键字yield:生成一个新的集合

  val ab = for(i <- 1 to 10;if(i % 2 == 0)) yeild i

  

  注意:1 to 10  同 1.to(10) 表达的意思是一样的,to是一个方法,在Scala中可以省略“.”

  1.to(10).map(_*100)    //创建一个元素为1到10的集合并将每个元素都乘以100

  map:取出元素  _:代表集合中的元素

 

七、运算符

  在Scala中,+、-、*、/、%的作用和Java中是一样的,但特别的是他们都是方法

  eg.  1 + 2  和  1.+(2)  的结果是一样的

  1. object ScalaDemo2{
  2. def mian(args:Array[String]):unit={
  3. println(m1(1,6))
  4. println(m2(3,6))
  5. }
  6.  
  7. def m1(a:Int,b:Int):Int={
  8. a+b
  9. }
  10.  
  11. def m2(a:Int,b:Int):Int=a*b
  12. }

  

  

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号