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. js浮点数乘除法

    JS在处理浮点数计算时经常会遇到精度的问题,上一篇博客封装了JS浮点数加减法的方法,这一次来封装一下js浮点数乘除法运算. 其实浮点除法的封装跟加减法的封装原理是一样,只是在第一次计算完后会再复位小数 ...

  2. Promise 对象与Generator 函数

    异步编程的方法,大概有下面四种: 回调函数 事件监听 发布/订阅 Promise 对象 传统的编程语言,早有异步编程的解决方案(其实是多任务的解决方案).其中有一种叫做"协程"(c ...

  3. [拾零]C语言的数组指针

    为了强化记忆,从而写笔记保留. 数组指针,顾名思义,是在说一个指针,这个指针是指向数组的. 区别于指针数组 int* p[5] = NULL; //指针数组 基类型 int* int (*p)[5] ...

  4. (转)在SQL Server 2016,Visual Studio 2017环境下,连接数据库屡屡失败,在connectionString上出的问题

    适用情景: 1,ServerVersion出了问题,“SqlCnt.ServerVersion”引发了类型“System.InvalidOperationException”的异常 2,在String ...

  5. 【转】iOS开发里的Bundle是个啥玩意?!

    初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource:@"someFileName&q ...

  6. 1066: 输入n个数和输出调整后的n个数

    1066: 输入n个数和输出调整后的n个数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 2739  Solved: 1578[Submit][Stat ...

  7. python-下拉框处理

    在自动化中python对下拉框的处理网上相对实例比较少,其它前辈写的教程中对下拉也仅仅是相对与教程来说的,比如下面: m=driver.find_element_by_id("Shippin ...

  8. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

  9. Spinal Tap Case -freecodecamp算法题目

    Spinal Tap Case 1.要求 将字符串转换为 spinal case. Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也 ...

  10. poj3335 Rotating Scoreboard

    题目描述: vjudge POJ 题解: 半平面交判核的存在性. 重点在于一个点的核也算核. 这样的话普通的求多边形的版本就要加一个特判. 就是把剩下的一个节点暴力带回所有直线重判,这时判叉积是否$\ ...