Scala学习记录--控制结构和函数

条件表达式

if表达式

  (1) val s = if( ... ){ ... } else{ ... }        (2) if(...){var s = ...} else{ var s = ....} 其中花括号可以省略,返回代码块的最后一个表达式,

若不同条件返回的对象不同,则返回的对象会取二者的共同超类

语句终止

scala可以通过;来终止一条语句,但是在scala中;不是必须的

块表达式和赋值

块表达式{},其中块中的程序代码自动返回最后一个表达式的值,其他程序不可访问块中的变量,

var a = { var i = 1; var j = 2;  i * j } // a=1*2

以赋值语句结束的块返回Unit,如{ var i = 1; var j = 2} //返回Unit

 因为赋值语句返回的是Unit,因此 x = y = 1时,在y=1时返回的是Unit,将Unit赋给了x,可能会出现类型不匹配的错误

输入和输出

print()不换行打印

println()换行打印

printf()类C风格的打印 printf("Hello:%s, age:%d", "Enche", 23)

使用readLine(), readInt(), readBoolean()...从控制台读取输入的数据

循环

do{ ... }while( ... ), while( ... ){ ... }

for(i <- 1 to n)       // <-类似于 in

循环退出

scala中无continue和break来退出循环,但是可以通过

import scala.util.control.Breaks._

breakable{

....; break;

}

退出循环

高级for循环和for推导式

scala for循环中可以有多个生成器,使用;分开   for(i <- 1 to 5; j <- 2 to 10){ ....}

每个for循环可以有一个守卫,以if开头的Boolean表达式 for(i <- 1 to 5; j <- 2 to 10 if j==i){ ....} //如果if为true则执行代码块

循环中可以使用变量 for(i <- 1 to 10; from = i-2; j <- from to 10){ ... }

循环体以yield开始,生成一个集合 for(i <- 1 to 1o) yield{ i }  //Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 这类循环叫做for推导式

for推导式生成的集合与第一个生成器是兼容类型 :

   1) scala>  for(i <- 1 to 3;j<-"abc") yield{ (i+j).toChar}
        res1: scala.collection.immutable.IndexedSeq[Char] = Vector(b, c, d, c, d, e, d, e, f)

   2)scala>  for(i <- 1 to 3;j<-"abc") yield{ (i+j).toChar}
res1: scala.collection.immutable.IndexedSeq[Char] = Vector(b, c, d, c, d, e, d, e, f)

 

(前20页)

 

 

本教程为授权出品 一、课程简介数据仓库(Data Warehouse,可简写为DW或DWH),是面向分析的集成化数据环境,为企业决策制定过程,提供系统数据支持的战略集合,是国内外各大公司正在重点投入的战略级技术领域。 二、课程内容《大数据电商数仓项目实战》视频教程,从项目架构的搭建,到数据采集模块的设计、数仓架构的设计、实战需求实现、即席查询的实现,我们针对国内目前广泛使用的Apache原生框架和CDH版本框架进行了分别介绍,Apache原生框架介绍中涉及到的技术框架包括Flume、Kafka、Sqoop、MySql、HDFS、Hive、Tez、Spark、Presto、Druid等,CDH版本框架讲解包括CM的安装部署、Hadoop、Zookeeper、Hive、Flume、Kafka、Oozie、Impala、HUE、Kudu、Spark的安装配置,透彻了解不同版本框架的区别联系,将大数据全生态系统前沿技术一网打尽。在过程中对大数据生态体系进行了系统的讲解,对实际企业数仓项目中可能涉及到的技术点都进行了深入的讲解和探讨。同时穿插了大量数仓基础理论知识,让你在掌握实战经验的同时能够打下坚实的理论基础。 三、课程目标本课程以国内电商巨头实际业务应用场景为依托,对电商数仓的常见实战指标以及难点实战指标进行了详尽讲解,具体指标包括:每日、周、月活跃设备明细,留存用户比例,沉默用户、回流用户、流失用户统计,最近连续3周活跃用户统计,最近7天内连续3天活跃用户统计,GMV成交总额分析,转化率及漏斗分析,品牌复购率分析、订单表拉链表的设计等,让学生拥有更直观全面的实战经验。通过对本课程的学习,对数仓项目可以建立起清晰明确的概念,系统全面的掌握各项数仓项目技术,轻松应对各种数仓难题。 四、课程亮点本课程结合国内多家企业实际项目经验,特别加入了项目架构模块,从集群规模的确定到框架版本选型以及服务器选型,手把手教你从零开始搭建大数据集群。并且总结大量项目实战中会遇到的问题,针对各个技术框架,均有调优实战经验,具体包括:常用Linux运维命令、Hadoop集群调优、Flume组件选型及性能优化、Kafka集群规模确认及关键参数调优。通过这部分学习,助学生迅速成长,获取前沿技术经验,从容解决实战问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值