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

举报
小米粒-biubiubiu 发表于 2020/12/03 00:11:49 2020/12/03
【摘要】 一、下载安装 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文件


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

在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 进行赋值。

五、函数/方法的定义


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

  
  1. /**
  2. * @author DuanZhaoXu
  3. * @ClassName:
  4. * @Description:
  5. * @date 2018年12月17日 16:58:23
  6. */
  7. object HelloWorld {
  8. def main(args: Array[String]): Unit = {
  9. // println("hello world")
  10. // println(add(1, 2))
  11. // println(three())
  12. // println(three)
  13. sayHello("张三")
  14. sayName("pk1")
  15. //命名参数的使用
  16. println(speed(100, 10))
  17. println(speed(distance = 100, time = 10))
  18. println(speed(time = 10, distance = 100))
  19. //可变参数 def sum(number:Int*)
  20. println(sum(1, 5, 6, 10))
  21. //if使用
  22. println(ifTest(10))
  23. }
  24. //函数基本使用
  25. def add(x: Int, y: Int): Int = {
  26. x + y
  27. }
  28. def three() = 1 + 2
  29. def sayHello(name: String): Unit = {
  30. println("say hello..." + name)
  31. }
  32. //1.函数默认参数
  33. def sayName(name: String = "PK"): Unit = {
  34. println(name);
  35. }
  36. //以不按照传入参数的顺序进行函数调用
  37. def loadConf(conf: String = "spark-default.conf"): Unit = {
  38. println(conf)
  39. }
  40. //2.命名参数的使用,在调用此函数方,
  41. def speed(distance: Float, time: Float): Float = {
  42. distance / time
  43. }
  44. //3.可变参数
  45. def sum(a: Int, b: Int) = {
  46. a + b
  47. }
  48. def sum(a: Int, b: Int, c: Int): Int = {
  49. a + b + c
  50. }
  51. //4.可变参数
  52. def sum(numbers: Int*) = {
  53. var sum = 0;
  54. for (number <- numbers) {
  55. sum += number;
  56. }
  57. sum
  58. }
  59. //5.if 语句
  60. def ifTest(number: Int): Boolean = {
  61. if (number > 1) true else false
  62. //if(number>1){
  63. //true
  64. // }else{
  65. //false
  66. // }
  67. }
  68. //循环表达式
  69. def toTest(): Unit = {
  70. //to (闭区间)
  71. 1 to 10
  72. 1.to(10)
  73. //range (不包含10)
  74. Range(1, 10, 1)
  75. Range(10, 1, -1)
  76. //until 和 range 等效
  77. 1 until 10
  78. 1.until(10)
  79. //for 循环
  80. for (i <- 1 to 10 if i % 2 == 0) {
  81. println(i)
  82. }
  83. val courses = Array("Hadoop", "Spark sql", "Spark streaming", "storm", "scala")
  84. for (course <- courses) {
  85. println(course)
  86. }
  87. //foreach
  88. courses.foreach(course => println(course))
  89. //while 循环
  90. var (num, sum) = (100, 0)
  91. while (num > 0) { //出口
  92. sum = sum + num;
  93. num = num - 1; //步长
  94. }
  95. println(sum)
  96. }
  97. }

 

 

 

 

 

 

       

 

 

 

 

 

 

 

 

 

 

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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