好程序员大数据学习路线分享spark之Scala


好程序员大数据学习路线分享sparkScala,基本语法:变量变量的定义:不可变:val a = 2 或者val a : Int = 2 (指定了数据类型) lazy val a : Int =2可变:var a = 2 或者var a : Int = 2(指定了数据类型)def a = 2定义变量不能1.以数字以及特殊符号(_除外)开头2.以关键字(varvalclass等)开头def定义的是??var编译后有setget所以可以重新赋值val编译后只有get方法 所以不能再赋值了lazy惰性变量,只在该变量被调用的时候才实例化,而且后面只能跟valdefval差不多 不能重新赋值 更多修饰方法Scala变量的类型:Anyscala的顶级类型,Any下有AnyVal(值类型)和AnyRef(引用类型)两个子类AnyVal :它有9个类型,其中7个是指类型:Double Float Byte Int Short Long Char和两个非值类型:Unit BooleanAnyRef :是引用类型,它的子类有:List Option或者自定义的并继承它的class所有的类型都需要首字母大写Scala会自动推断类型Scala数据类型可以从低到高转换Byte-Short-Int-Long-Float-DoubleChar-Int-Long-Float-Double注意:scala内没有强转操作符Scala里没有操作符的概念,所谓的操作符其实都是方法数学运算:+ – * / : % .+ ( ) 注:x+yx.+(y)等价关系: >= ! != ==位运算:| & ^如果两个不一样类型的变量进行运算,最终结果的类型是大的那个类型如果想要格式化输出:var x =5 var y = 5var n =x + yprint(s”x+y=$n”) 输出结果x+y=10当然也可以在结果前面加字符串”x+y”条件表达式
这种打出来是空,因为else里不是一个值,而是一个赋值语句正常应该是va 香港云主机r res = if(sex == 1){“男”}else{“女”}因为大括号里只有一个‘表达式’,大括号可以省略var res = if(sex == 1)“男”else“女”for循环for(i打印1-10for(i 打印1-9val arr = Array(“java”,”scala”,”python”) //定义一个数组for(i打印数组内容 for(i 相当于双层for循环val arr =for(i 把0-9循环出来后封装进arr集合val arr =for(i
val res2 = for(i 过滤val arrf = bf.filter(_ %2==0).map(_ *100) //过滤 _是全部数据的意思 scala中不支持break语句,但在scala 2.8之后 可以利用Breaks方式来实现
方法def m1(x : Int , y : Int ) : Int = {x + y} //三种声明方式def m2(x:Int , y:Int) {print(x+y)}def m3(x:Int , y:Int){x+y}解释:m1是方法名 xyint型的参数 括号外的int是返回值类型 x+y是方法调用:m1 (3,4)函数val f1 = (x:Int , y:Int) => x+y //声明val f1 = (x:Int , y:Int) =>{val sum = x+ysum*100} //最后一句作为函数的返回值 函数没有返回值类型回车之后会看到f1: (Int, Int) => Int = 这里的function2中的2指的是参数的个数调用:f1 (3,4) //与方法的调用一致函数与方法的关系???我们通过一个案例来探讨:首先创建一个方法:def func (yAge:Int,mAge:Int):String={val a : Boolean = yAge >= mAgeval str : String = if(a) “哥哥” else “弟弟str}我们发现这个条件可以做成一个函数:val m = ( yAge:Int , mAge:Int ) = >{yAge >= mAge}我们可以调用函数:def func1 (yAge:Int,mAge:Int):String={val a : Boolean = m(yAge,mAge)val str : String = if(a) “哥哥” else “弟弟}我们也可以把函数当做一个参数传入到方法中:def func1(yAge:Int,mAge:Int,f:(Int,Int) =>Boolean):String={var a= f(yAge,mAge) 或者var a :Boolean = f(yAge,mAge)val res : String=if(a)”哥哥” else “弟弟res}调用:println(func1(18,20,m))

相关推荐: win8管理员账户不见了怎么办

这篇文章主要介绍win8管理员账户不见了怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.首先按“WIN+F”快捷键,点击“所有位置”。2.再输入“CMD”在搜索出来程序上点击右键选择“以管理员身份运行”。3.进入命令提示符以后,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/22 21:22
Next 07/22 21:22

相关推荐