1. package com
  2.  
  3. /**
  4. * Created by ZX on 2015/11/6.
  5. */
  6. object VariableDemo {
  7. def main(args: Array[String]) {
  8.  
  9. //1定义变量-----------------------------------------
  10. //使用val定义的变量值是不可变的,相当于java里用final修饰的变量
  11. val i = 1
  12. //使用var定义的变量是可变得,在Scala中鼓励使用val
  13. var s = "hello"
  14. //Scala编译器会自动推断变量的类型,必要的时候可以指定类型
  15. //变量名在前,类型在后
  16. val str: String = "itcast"
  17. println(i);
  18. println(s);
  19. println(str);
  20.  
  21. //2循环-----------------------------------------
  22. for (c <- s) println(c);
  23.  
  24. //3Array
  25. val arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
  26. for (e <- arr)
  27. println(e)
  28.  
  29. for (i <- 1 to 10) println(i)
  30.  
  31. //4高级for循环
  32. //每个生成器都可以带一个条件,if前面没有分号
  33. for (i <- 1 to 3; j <- 1 to 3 if i != j)
  34. println((10 * i + j) + " ")
  35.  
  36. //5for推导式:如果for循环的循环体以yeild开始,则该循环会构建一个组合
  37. //每次迭代生成集合中的一个值
  38. val v = for (i <- 1 to 10) yield i * 10
  39. println(v)
  40.  
  41. println((1 to 10).map(_ * 10))
  42.  
  43. val a = Array("a", "b", "c")
  44. for (e <- a) println(e)
  45.  
  46. for (i <- 0 to a.length) println(i)
  47. for (i <- 0 until a.length) println(a(i))
  48.  
  49. //判断x的值,将结果赋给y
  50. val x = 0
  51. val y = if (x > 0) 1 else -1
  52. println(y)
  53.  
  54. //支持混合类型表达式
  55. val z = if (x > 1) 1 else "error"
  56. println(z)
  57.  
  58. //如果缺失else,相当于if(x>2) 1 else ()
  59. val m = if (x > 2) 1
  60. println(m)
  61.  
  62. //操作符重载
  63. val numa = 2
  64. val numb = 3
  65. numa + numb
  66. numa.+(numb)
  67.  
  68. //方法和函数
  69. //定义方法
  70. def m1(x: Int): Int = x * x
  71. //scala可以自动推断返回值类型,但是如果方法中存在递归,则必须指定返回值类型
  72. def m2(x: Int) = x * x
  73. println("-----------" + m1(2))
  74. println("-----------" + m2(2))
  75.  
  76. def n1(y: Int, z: Int): Unit = println(y + z)
  77. val n2 = n1(1, 2)
  78. println("n2是" + n2) //n2是() scala中的()相当于java中void
  79.  
  80. def n3(y: Int, z: Int) {
  81. println(y + z)
  82. }
  83. val n4 = n3(2, 2)
  84. println("n4是" + n4)
  85.  
  86. //定义函数 函数可以作为参数传入方法里边
  87. val f = (x: Int) => x * x;
  88. println("-----------" + f(3))
  89. val f1 = (x: Int, y: Int) => x * y
  90. println("-----------" + f1(3, 4))
  91.  
  92. val arrs = Array(1, 2, 3, 4, 5)
  93. arrs.map((x: Int) => x * 10)
  94. arrs.map((x) => x * 10)
  95. arrs.map(x => x * 10)
  96. for (e <- arrs) println(e)
  97. val arr1 = Array(1, 2, 3);
  98.  
  99. val arr2 = arr1.map(_ * 10)
  100. for (e <- arr2) println(e)
  101.  
  102. //函数作为函数的参数传给函数
  103. val ff1 = (x: Int) => x * x
  104. val arr3 = arr2.map(ff1)
  105.  
  106. for (e <- arr3) println("---" + e)
  107. }
  108. }

大数据学习——scala入门练习的更多相关文章

  1. 大数据学习——scala入门程序

    安装scala.msi https://blog.csdn.net/sinat_32867867/article/details/80305302 notepad++ object HelloScal ...

  2. 大数据学习——scala类相关操作

    1 类的定义 package com /** * Created by Administrator on 2019/6/3. */ //类并不用声明为public. class Person { // ...

  3. 大数据学习——scala数组

    package com import scala.collection.mutable.ArrayBuffer /** * Created by Administrator on 2019/4/8. ...

  4. 大数据学习——sqoop入门

    下载地址 https://pan.baidu.com/s/1qWDl29L9I_KVU54c0ioNfQ fvfh 3.1 概述 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传 ...

  5. 大数据学习——scala集合练习

    package com /** * Created by ZX on 2016/4/5. */ object ListTest { def main(args: Array[String]) { // ...

  6. 大数据学习——scala的wordCount小例子

    val lines=List("hello tom hello jerry","hello tom hello kitty hello china") //方法 ...

  7. 大数据学习——scala函数与方法

    package com /** * Created by Administrator on 2019/4/8. */ object TestMap { def ttt(f: Int => Int ...

  8. 大数据学习——KETTLE入门学习——kettle安装

    https://blog.csdn.net/u012637358/article/details/82593492 下载的kettle是汉化的 改成英文的 工具——选项——选择英文

  9. 大数据学习之Hadoop快速入门

    1.Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠.高效 ...

随机推荐

  1. When you want to give up, remember why you started.

    When you want to give up, remember why you started.当你想要放弃的时候,请记住当初你为何而开始.

  2. ubuntu和window之间如何共享文件

    参考网上的自己动手实现共享文件: 1.打开虚拟机进入ubuntu系统,先安装增强功能包 2.安装完重启虚拟机后,在window下创建一个专门用来共享的文件夹 3.切换到ubuntu系统,在设备的共享文 ...

  3. Jquery 事件 DOM操作

    常规事件: 把JS的事件  on去掉即可 例如:js    document.getElementById("id").onclinck=function(){} Jquery   ...

  4. python中os.listdir( )函数读取文件夹

    编写pytohn脚本时通常需要批处理. 列出指定目录下的所有文件/文件夹 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表,但有个很明显的缺点,它的默认顺序不是有序的或 ...

  5. Set、Map及数组去重

    https://cloud.tencent.com/developer/article/1437254 https://blog.csdn.net/weixin_34247299/article/de ...

  6. rcnn,sppnet,fast rcnn,ohem,faster rcnn,rfcn

    https://zhuanlan.zhihu.com/p/21412911 rcnn需要固定图片的大小,fast rcnn不需要 rcnn,sppnet,fast rcnn,ohem,faster r ...

  7. python_93_面向对象实例2

    class Role: def __init__(self,name,role,weapon,life_value=100,money=15000): '构造函数:实例化时做一些类的初始化工作' se ...

  8. WINDOWS-基础:Thread.Sleep(0)

    我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用 ...

  9. USACO08FEB Hotel

    题目传送门 线段树维护区间 线段树结构体 struct zzz{ int l,r,mi; //l为以左端点的为起点的最长子串 //r为以右端点为终点的最长子串 //mi是区间内部的最长子串 }tree ...

  10. 解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题

    笔者今天发现导入cocostudio的ui界面时,会有部分控件出现错位的现象,后来我看了一下源码,发现是部分控件是没有继承 Layout类,导致不能设置控件位置造成,原因可以看看cocos2dx 源码 ...