package com

/**
* Created by ZX on 2015/11/6.
*/
object VariableDemo {
def main(args: Array[String]) { //1定义变量-----------------------------------------
//使用val定义的变量值是不可变的,相当于java里用final修饰的变量
val i = 1
//使用var定义的变量是可变得,在Scala中鼓励使用val
var s = "hello"
//Scala编译器会自动推断变量的类型,必要的时候可以指定类型
//变量名在前,类型在后
val str: String = "itcast"
println(i);
println(s);
println(str); //2循环-----------------------------------------
for (c <- s) println(c); //3Array
val arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
for (e <- arr)
println(e) for (i <- 1 to 10) println(i) //4高级for循环
//每个生成器都可以带一个条件,if前面没有分号
for (i <- 1 to 3; j <- 1 to 3 if i != j)
println((10 * i + j) + " ") //5for推导式:如果for循环的循环体以yeild开始,则该循环会构建一个组合
//每次迭代生成集合中的一个值
val v = for (i <- 1 to 10) yield i * 10
println(v) println((1 to 10).map(_ * 10)) val a = Array("a", "b", "c")
for (e <- a) println(e) for (i <- 0 to a.length) println(i)
for (i <- 0 until a.length) println(a(i)) //判断x的值,将结果赋给y
val x = 0
val y = if (x > 0) 1 else -1
println(y) //支持混合类型表达式
val z = if (x > 1) 1 else "error"
println(z) //如果缺失else,相当于if(x>2) 1 else ()
val m = if (x > 2) 1
println(m) //操作符重载
val numa = 2
val numb = 3
numa + numb
numa.+(numb) //方法和函数
//定义方法
def m1(x: Int): Int = x * x
//scala可以自动推断返回值类型,但是如果方法中存在递归,则必须指定返回值类型
def m2(x: Int) = x * x
println("-----------" + m1(2))
println("-----------" + m2(2)) def n1(y: Int, z: Int): Unit = println(y + z)
val n2 = n1(1, 2)
println("n2是" + n2) //n2是() scala中的()相当于java中void def n3(y: Int, z: Int) {
println(y + z)
}
val n4 = n3(2, 2)
println("n4是" + n4) //定义函数 函数可以作为参数传入方法里边
val f = (x: Int) => x * x;
println("-----------" + f(3))
val f1 = (x: Int, y: Int) => x * y
println("-----------" + f1(3, 4)) val arrs = Array(1, 2, 3, 4, 5)
arrs.map((x: Int) => x * 10)
arrs.map((x) => x * 10)
arrs.map(x => x * 10)
for (e <- arrs) println(e)
val arr1 = Array(1, 2, 3); val arr2 = arr1.map(_ * 10)
for (e <- arr2) println(e) //函数作为函数的参数传给函数
val ff1 = (x: Int) => x * x
val arr3 = arr2.map(ff1) for (e <- arr3) println("---" + e)
}
}

大数据学习——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. springBoot jpa 分页

    1.jap中有自带的分页方法 在dao层中使用 Page<LinkUrl> findAll(Pageable pageable); 2.在controller层 public List&l ...

  2. markdown-Macdown

    #标题 [页面锚点](#name)   =>   <a name="name"></a>文字 **加粗**(Command-B) *斜体*(Comma ...

  3. 如何提高Mysql的查询效率???

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. C#中静态成员和实例变量

    昨天晚上看静态成员和实例变量的时候,看到这样的一句话:默认情况下,若成员被定义为实例变量,这就意味着类需要为每个实例都建立一个副本,而在定义一个静态变量的时候,只存在此成员的一个副本. 呵呵,今天跟前 ...

  5. C#去掉字符串最后面的一个标点符号的写法

    keywordHtml = keywordHtml.Remove(keywordHtml.LastIndexOf(','),1);

  6. UVA 11491 Erasing and Winning 奖品的价值 (贪心)

    题意:给你一个n位整数,让你删掉d个数字,剩下的数字要尽量大. 题解:因为最后数字位数是确定的,而且低位数字对答案的贡献是一定不及高位数字的,所以优先选择选最大且最靠左边的数字,但是有一个限制,选完这 ...

  7. vue2使用animate css

    先上几个链接 vue插件大集合:awesome-vue vue2插件: vue2-animate:vue2-animate vue2插件vue2-animateDEMO: vue2-animatede ...

  8. PAT (Basic Level) Practise (中文)- 1011. A+B和C (15)

    http://www.patest.cn/contests/pat-b-practise/1011 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1 ...

  9. java基础—泛型

    一.体验泛型 JDK1.5之前的集合类中存在的问题——可以往集合中加入任意类型的对象,例如下面代码: 1 package cn.gacl.generic.summary; 2 3 import jav ...

  10. java中插入myslq的datetime类型的

    java.util.Date d = new java.util.Date(); Timestamp tt=new Timestamp(d.getTime()); ps.setTimestamp(4, ...