Scala 语言入门(一)基础语法和函数使用

举报
小米粒-biubiubiu 发表于 2020/12/03 00:11:49 2020/12/03
7.2k+ 0 0
【摘要】 一、下载安装 scala 将下载好的scala-2.12.8.zip包解压到当前目录,配置 环境变量 配置path  和 classpath 编写 HelloWorld.scala文件 object HelloWorld{ def main(args:Array[String]){ println("hello world!!!") }} 在cmd 窗口...

一、下载安装 scala

将下载好的scala-2.12.8.zip包解压到当前目录,配置 环境变量

配置path  和 classpath

编写 HelloWorld.scala文件


      object HelloWorld{
      def main(args:Array[String]){
       println("hello world!!!")
       }
      }
  
 

在cmd 窗口,执行 scalac  HelloWorld.scala 等待编译成功之后,执行 scala -classpath . HelloWorld 看到 控制台输出

hello world !!!即可。

二、val 和 var 

val :值 (不可变)

        final

      例如: val  age:int =20

var :变量 (可变的)

      var name:String ="zhangsan"

      name = "zhangsi"

:int :String 可以不写,scala 大多数情况下可以自动推导出数据类型

三、scala 基本数据类型
Byte/Char 

Short/Int/Long/Float/Double

Boolean

类型转换 : 10.asInstanceOf[Double]

判断是否是某个类型:  10.isInstanceOf[Int]

四、lazy 在 scala 中的使用

val i = 1 

lazy val a = 1   , 用lazy修饰,只有在第一次使用的使用才会去给a 进行赋值。

五、函数/方法的定义


      def 方法名(参数名:参数类型):返回值类型={
      //括号内的叫做方法体
      //方法体内的最后一行为返回值,不需要使用return
      }
  
 

      /**
       * @author DuanZhaoXu
       * @ClassName:
       * @Description:
       * @date 2018年12月17日 16:58:23
       */
      object HelloWorld {
        def main(args: Array[String]): Unit = {
      // println("hello world")
      // println(add(1, 2))
      // println(three())
      // println(three)
       sayHello("张三")
       sayName("pk1")
      //命名参数的使用
       println(speed(100, 10))
       println(speed(distance = 100, time = 10))
       println(speed(time = 10, distance = 100))
      //可变参数 def sum(number:Int*)
       println(sum(1, 5, 6, 10))
      //if使用
       println(ifTest(10))
        }
       //函数基本使用
        def add(x: Int, y: Int): Int = {
       x + y
        }
        def three() = 1 + 2
        def sayHello(name: String): Unit = {
       println("say hello..." + name)
        }
       //1.函数默认参数
        def sayName(name: String = "PK"): Unit = {
       println(name);
        }
       //以不按照传入参数的顺序进行函数调用
        def loadConf(conf: String = "spark-default.conf"): Unit = {
       println(conf)
        }
       //2.命名参数的使用,在调用此函数方,
        def speed(distance: Float, time: Float): Float = {
       distance / time
        }
       //3.可变参数
        def sum(a: Int, b: Int) = {
       a + b
        }
        def sum(a: Int, b: Int, c: Int): Int = {
       a + b + c
        }
       //4.可变参数
        def sum(numbers: Int*) = {
      var sum = 0;
      for (number <- numbers) {
       sum += number;
       }
       sum
        }
       //5.if 语句
        def ifTest(number: Int): Boolean = {
      if (number > 1) true else false
      //if(number>1){
      //true
      // }else{
      //false
      // }
        }
       //循环表达式
        def toTest(): Unit = {
      //to (闭区间)
      1 to 10
      1.to(10)
      //range (不包含10)
       Range(1, 10, 1)
       Range(10, 1, -1)
      //until 和 range 等效
      1 until 10
      1.until(10)
      //for 循环
      for (i <- 1 to 10 if i % 2 == 0) {
       println(i)
       }
       val courses = Array("Hadoop", "Spark sql", "Spark streaming", "storm", "scala")
      for (course <- courses) {
       println(course)
       }
      //foreach
       courses.foreach(course => println(course))
      //while 循环
      var (num, sum) = (100, 0)
      while (num > 0) { //出口
       sum = sum + num;
       num = num - 1; //步长
       }
       println(sum)
        }
      }
  
 

       

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/85050371

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。