zoukankan      html  css  js  c++  java
  • Scala-Unit-2-Scala基础语法1

    一、Scala程序的开始->HelloScala

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

    object HelloScala{
        def main(args:Array[String]){
           println("HelloScala")        
        }  
    }
    

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

      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)  的结果是一样的

    object ScalaDemo2{
        def mian(args:Array[String]):unit={
              println(m1(1,6))
              println(m2(3,6))
        }
    
        def m1(a:Int,b:Int):Int={
            a+b
        }
    
        def m2(a:Int,b:Int):Int=a*b 
      
    }
    

      

      

  • 相关阅读:
    sublime text 怎么浏览包
    postman 中url有动态变换的值时,可以按下面方式变换。
    mac jmeter安装
    mysql 更改密码
    Jenkins启动报端口被占用,解决办法FAILED ServerConnector@2a265ea9{HTTP/1.1}{0.0.0.0:8080}: java
    ajax无法跳转页面的问题,
    EF查询性能优化相关
    code first从入门到伪精通
    自适应Bootstrap学习
    每月分享github上有意思的项目
  • 原文地址:https://www.cnblogs.com/HelloBigTable/p/10226294.html
Copyright © 2011-2022 走看看