Scala学习笔记——20170817

Scala入门

  • 可伸缩
  • 面向对象
  • 函数式
  • 基于JVM
  • 可调用丰富的Java类库
  • 静态类型(编译时检查)
  • 扩展性
  • 应用 Spark由scala编写

Scala安装

  • java

    1. 下载.tar.gz包 http://www.oracle.com/technetwork/java/javase/downloads/index.html
    2. 解压到/usr/local/java/下
    3. 配置环境变量 vim /etc/profile

      JAVA_HOME=/usr/local/java/jdk1.8.0_144
      JRE_HOME=/usr/local/java/jdk1.8.0_144/jre
      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
      PATH=$JAVA_HOME/bin:$PATH
      export PATH JAVA_HOME CLASSPATH
    4. source /etc/profile

    5. java 测试是否正常
  • scala

    1. 下载.tgz包 http://www.scala-lang.org/
    2. 解压到/usr/local/下
    3. 配置环境变量

      export PATH="$PATH:/usr/local/scala-2.12.3/bin"
    4. source /etc/profile

    5. scala 测试是否正常

数据类型

  • Byte、Short、Int、Long、Float、Double、Char、Boolean
  • String
  • Unit -> 相当于void
  • Null
  • Nothing 是任何其他类型的子类型
  • Any 是任何其他类型的超类
  • AnyRef 是所有引用类的基类

变量

  • var 变量
  • val 常量
  • lazy val
var name : String = "xiaoming"
name = "xiaomingAbcdef"
val comm: String = "book"

修饰符

  • private(比java更严格)
  • protected
  • public(默认)
  • 作用域保护 -> private[包名] 该包名的可以访问,其他不能

练习

给出三角形的三条边,判断三角形的类型

object HelloWorld {

    def main(args: Array[String]): Unit = {
        println("Hello Scala")

        work(6, 6, 6)
    }



    def work(arg0: Double, arg1: Double, arg2: Double): Unit = {
        //先排序
        var a: Double = 0
        var b: Double = 0
        var c: Double = 0

        val list = List(arg0, arg1, arg2)
        println(list)
        val listSorted = list.sorted
        a = listSorted.head
        b = listSorted(1)
        c = listSorted(2)

        //判断是否是三角形
        if (a + b <= c) {
            println("不是三角形")
            return
        }

        //确定三角形类型
        judgementType(a, b, c)
        judgementType2(a, b, c)
    }


    def judgementType(a: Double, b: Double, c: Double): Unit = {
        if (a * a + b * b > c * c) {
            println("锐角三角形")
        } else if (a * a + b * b < c * c) {
            println("钝角三角形")
        } else {
            println("直角三角形")
        }
    }

    def judgementType2(a: Double, b: Double, c: Double): Unit = {
        if (a == b && b == c) {
            println("等边三角形")
        } else if ((a == b && a != c) || (c == b && a != b) || (a == c && a != b)) {
            println("等腰三角形")
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值