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热部署的两种方式

    SpringBoot热部署方式一共有两种,分别使用两种不同的依赖 SpringBoot 1.3后才拥有SpringBoot devtools热部署 ①:spring-boot-devtools   ② ...

  2. 洛谷 P1807 最长路_NOI导刊2010提高(07)

    最长路 #include <iostream> #include <cstdio> #include <cstring> #include <queue> ...

  3. Xamarin 常见问题解决方案汇总

    出现如下提示,错误: 找不到或无法加载主类 com.sun.tools.javac.MainMSB6006: 或 閿欒: 绋嬪簭鍖卆ndroid.support.v4.view.ViewPager涓嶅 ...

  4. groupmod - 修 改 群 组

    总览 SYNOPSIS groupmod [-g gid [-o]] [-n group_name ] group 描述 DESCRIPTION groupmod 命 令 会 参 照 你 命 令 列 ...

  5. CentOS配置主机名和主机映射

    1.修改本机主机名 vi /etc/sysconfig/network 修改hostname HOSTNAME=s0 2.配置主机映射 vi /etc/hosts 修改内容如下 192.168.32. ...

  6. Python封装补充

    property属性 property实际是setter getter deleter是集合体,并不是一个单独的方法 import math # 使用的库 class Circle: def __in ...

  7. win7便笺元数据损坏,最新解决办法

    Windows7系统开机时出现“部分便笺的元数据已被破坏,便笺已将其恢复为默认值.”问题,最新解决办法,图文说明,亲测,希望可以帮到大家 工具/原料   Windows7系统 InkObj.dll.T ...

  8. k8s1.13.0二进制部署-Dashboard和coredns(五)

    部署UI 下载yaml文件https://github.com/kubernetes/kubernetes [root@k8s-master1 ~]# git clone https://github ...

  9. k8s1.13.0二进制部署-ETCD集群(一)

    Kubernetes集群中主要存在两种类型的节点:master.minion节点. Minion节点为运行 Docker容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能.Ma ...

  10. linux文本处理工具及正则表达式

    cat命令:查看文本内容 cat [选项]... [文件]... -E    显示行结束符 -n    显示文本内容时显示行号 -A    显示所以控制符 -b    非空行编号 -s     压缩连 ...