• scala光速入门第一天


    首先非常荣幸成为王家林老师3000门徒之一,以后此博客将会记录学习王家林老师每节课程的笔记,作业。 
    本人邮箱:852667211@qq.com 
    电话:15737606315 
    下面是第一天的学习笔记 
    一:关于scala的产生背景,解决了什么技术问题(内容大部分来自网络,我只写一些个人总结,以后皆如此) 
    scala是新一代的jvm语言,是一门多范式编程语言,scala集成函数式编程和面向对象编程的各种优势,成为Java语言后又一有重大价值的编程语言,scala语言目前已经运用在各种领域,目前在大数据领域最火爆的spark框架就是用scala编写的,由于scala集成面向对象与函数式编程的各种优势,这令scala语言成为处理大数据上面的不二选择,scala兼容所有的Java程序,能够调用 java 类库 
    二:scala基础语法入门 
    1:首先要先装好虚拟机(我用ubuntu14.04),在虚拟机中安装好jvm1.8,设置环境变量,安装scala最新版,运行命令scala启用解释器 
    2:scala读取一求值一打印一循环 即REPL操作(这里不方便插入图片) 
    3:用var和val定义变量,var定义值可以改变的变量,val定义值不可变的变量 
    4:和java一样有7种基本数据类型,scala的基本类型全部是类,可以有方法,例如可以“1.方法名”来调用一个基本数据类型的方法(不方便截图) 
    5:scala方法带有两个参数,一个隐式的和一个显式 
    6:scala算术运算符和Java基本一样,出来一部分操作运算符可以当作方法用如:a.+(b),这里的+号是方法 
    三:控制结构与函数入门 
    1:在scala中所有的表达式都有值,void类型在scala中用unit表示 
    可以将if/else表达式的值赋值给变量如:val num=if (x > 0) 1 else -1将表达式if(x>0)的值赋给不可变变量num
    2:在 Scala中,{}块包含一系列表达式,其结果也是一个表达式。块中最后一个表达式的值就是块的值 
    3:输入输出可以用print或println函数 
    4:在scala中可以遍历while for循环表达式的所有的值(不方便截图),比java中要方便很多 
    5:scala中方法和函数不是同一个定义,要定义函数,你需要给出函数的名称、参数和函数体,必须指定所有参数类型(不方便截图) 
    四:Array、Map、Tuple实战(参考王家林老师博客scala学习笔记) 
    1:tuple 
    元组,元组中可以由很多数据,读取Tuple数据时使用._的方式读取,并且索引从1开始。经常用Tuple接受函数的返回值。 
    2:array 
    数组使用圆括号()读取,索引从0开始,向左的箭头符号<-是赋值的意思。第二种循环方式是增强for循环的写法。 
    Scala中的数组是以Java数组实现的。 
    3:map 
    只取key或只取value时,需要使用单下划线_作为占位符,使用占位符后不能对其进行引用。 
    五:spark案例解释,读源代码,运用前面所学的知识,理解spark内核源码,尝试理解spark内核架构

    课后作业(参考快学scala) 
    移除一个数组中第一个负数后的所有负数 
    最有效方法:把非负数值拷贝到前端 
    收集需要保留的下标 
    var first = true 
    val indexes = for(i<-0 until a.length if first || a(i) >= 0) 
    yield{ 
    if (a(i) < 0) first = false; 

    每次截断数组长度 
    for (j <- 0 until indexes.length) a(j) = a(indexes(j)) 
    a.trimEnd(a.length - indexes.length)

  • 相关阅读:
    Java——GUI
    linux变量
    shell脚本
    linux查找文件命令
    composer的安装
    restful的nginx配置方法
    api调用安全
    PHP设置Cookie的HTTPONLY属性
    php的异常处理
    php错误报告
  • 原文地址:https://www.cnblogs.com/qq852667211/p/5094544.html
Copyright © 2020-2023  润新知