当前位置: 首页 > news >正文

自己做网站要会什么游戏推广怎么找玩家

自己做网站要会什么,游戏推广怎么找玩家,平面设计师常用的素材网站,镇江网站建设制作企业一、什么是scala Scala 是一种多范式的编程语言,其设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。 二、为什么要学习scala 1、优雅 2、速度快 3、能融合到hado…

一、什么是scala

Scala 是一种多范式的编程语言,其设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。

二、为什么要学习scala

1、优雅
2、速度快
3、能融合到hadoop生态圈
4、Spark底层源码是scala语言编写的

函数编程范式更适合用于Map/Reduce和大数据模型,它摒弃了数据与状态的计算模型,着眼于函数本身,而非执行的过程的数据和状态的处理。函数范式逻辑清晰、简单,非常适合用于处理基于不变数据的批量处理工作,这些工作基本都是通过map和reduce操作转换数据后,生成新的数据副本,然后再进行处理。像Spark,Flink,kafka等都是采用Scala开发的,所以学习好大数据,掌握scala是必要的。

三、Scala基础语法知识

1、语言特点

1、面向对象,函数式编程
2、兼容Java,类库可以互相调用
3、语法简洁,代码行短,类型自动推断,抽象控制

2、Scala解释器

Scala解释器读到一个表达式,对它进行求值,将它打印出来,接着再继续读下一个表达式。这个过程被称做读取read–求值eval–打印print–循环loop,即:REPL。实际发生的是,你输入的内容被快速地编译成字节码,然后这段字节码交由Java虚拟机执行。

3、变量定义

var/val 变量名[:变量类型]=变量值
中括号内的内容可以省略,因为scala语言可以自动推断数据类型。
1、Var:修饰的变量,引用可以改变
2、Val:修饰的变量,引用不可以改变

4、数据类型

在java当中,顶级父类是object,在scala当中,顶级父类是Any。
1、Any下面有两个子类,一个是AnyVal,一个是AnyRef
(1)AnyVal:值类型,指的是整型,浮点型,字符型,布尔类型
(2)AnyRef:引用类型,指的是scala的集合,scala的类,java的类
AnyRef有一个子类,是null
AnyVal和AnyRef共有的子类是Nothing
在这里插入图片描述

5、操作符说明

1、Scala调用一些方法或者函数的时候,如果方法或者函数是空参的,可以省略掉()。
2、在Scala中一行表示的结尾不像Java需要使用";",Scala可以省略。

6、流程控制

1、分支语句

	var x = -4//分支语句val res = {if (x > 0) {println(x)} else {"ff"}}println(res)//ff

2、块表达式

	//块表达式     scala 的返回值可以省略return关键字,表达式的最后一句,作为表达式的返回值返回//return 关键字通常使用在函数中进行逻辑的终止,比如循环var res01={1+23+45>9}println(res01)//false

3、while循环

//while循环   ++  --等自增运算符scala不支持,因为已经被scala集合的对应函数所占据var n=1var res = while(n<=10){n+=1println(n)}println(res)//输出:()//注:while语句没有输出值,但是在Scala中,认为每个表达式都有值,这个问题的解决方案是引入一个Unit类,写作(),叫做无用占位符

4、do While循环

	var sum = 0var s =1do{sum += ss+=1println(s"${s}---${sum}")}while(s<=10)

5、for循环

    var sum =0//to遍历 1 to 5:[1,2,3...5],左右均为闭合区间,包含左侧元素,也包含右侧元素。for (i<- 1 to 5){sum+=iprintln(s"${sum}---${i}")}for(i<- 1.to(8)){println(i)}//until遍历 1 until(5):[1,2,3...5),左闭右开区间,包含左侧元素,不包含右侧元素for(i <- 1 until(5)){println(i)//1 2 3 4}//range遍历 左闭右开区间,包含左侧元素,不包含右侧元素,三个参数分别为开始、结束和增量值for(i<-Range(1,6,2)){println(i)//1 3 5}//倒序输出for(i<-(1.to(5)).reverse){println(i)}for(i<- Range(3,0,-1)){println(i)}//scala守卫模式for(i<- 1 to 10 if i%2==0){println("---"+i)}//引入变量for(i<-1 to 5; j=5-i){println(s"$i---$j")}//九九乘法表for(i <- 1 to 9;j <- 1 to i){print(s"$i*$j=${i*j}\t")if(i==j){println()}}

6、循环终止

	//1.使用returnfor(j<- 1 to 6){if(j==3){return}println(j)}//2.使用循环条件来控制var i =0;do{i+=1;println(i)}while(i<5)//3.使用breakable函数体来控制//相当于continuefor(i<- 1 to 20){breakable{if(i==12){break()}println(i)}}//相当于breakbreakable{for(i <- 1 to 5){if(i==3){break()}println(i)}}

8、懒加载(lazy)
被lazy所修饰的变量,只有当第一次被使用的时候才会进行初始化,没有使用之前只是记录了存在,检查语法结构是否正确。可以节省一定的资源空间。

7、方法定义
	//方法的最后一句就是该方法的返回值,函数也一样,return可以省略,如果有return,就一定要加上返回值类型//def 方法名 (参数名:参数类型,参数名:参数类型)={方法体}def hello(name:String,age:Int)={name+age}val res=hello("hhh",22)println(res) //hhh22//def 方法名(参数名:参数类型,参数名:参数类型):返回值类型={方法体}def hello2(name:String,age:Int):String={name}val res2=hello2("fff",22)println(res2)//单行方法def hello3(age:Int)={age}val res3=hello3(22)println(res3)//空参方法//定义方法时有小括号,调用的时候可带可不带小括号//定义的时候没有小括号,调用的时候不能加小括号def hello4={println("errr")}hello4//指定参数的方法,带名参数调用方法def hello5(name:String,age:Int) ={age+name}val rrr=hello5(age=44,name="xiaowena")println(rrr)//带默认值的方法def hello6(name:String="hhh",age:Int=19)={name+age}val eee=hello6("jjj")println(eee)//jjj19val eee1=hello6("jjj",33)println(eee1)//jjj33val eee2=hello6()println(eee2)//hhh19//多个参数def hello7(x:String,y:Int*)={var sum = 0for(i<-y){sum+=1}sum}val hh=hello7("mulity",3,4,5,6,7)println(hh)//5//可变参数var arr=Array(1,2,3,4,5)def hello8(name:String,age:Int*)={var sum=0for(i<-age){sum+=i}sum}//传递数组类型的要以这样arr: _*的方式val res4=hello8("tom",arr: _*)println(res4)//递归方法def factory(i:Int):Int={if(i==0){1}else{i*factory(i-1)}}val jj=factory(5)println(jj)
8、函数定义
 	//创建函数 俗称匿名函数//val 函数名=(参数名:参数类型,参数名:参数类型)=>{函数体}val fun=(name:String,age:Int)=>{name+age}val ff=fun("hello",22)println(ff)//val 函数名:(参数类型,参数类型)=>返回值类型={函数体}val fun2:(String,Int)=>String={(name,age)=>{println("jjjj")println(age)name}}val ff2=fun2("haoop",12)println(ff2)//原始的创建函数的真实过程val fun3 = new Function3[String,Int,Int,String] {override def apply(v1: String, v2: Int, v3: Int):String = {v1+v2+v3}}val ff3:String=fun3("xiaom",3,4)println(ff3)//函数作为参数传递到方法中def hello(f:(Int,Int)=>Int)={f(2,3)}val fun5:(Int,Int)=>Int={(x,y)=>{x-y}}val ff4=hello(fun5)println(ff4)//-1//创建函数val function = new Function2[String, Int, String] {override def apply(v1: String, v2: Int): String = {v1 + v2}}val fun6:String=function("hhh",77)//调用函数并赋值println(fun6)//hhh77
9、方法和函数的区别

(1)方法和函数定义形式不同
(2)方法也是函数,函数也是对象
(3)函数可以作为参数传递到方法中去
(4)方法名+空格+下划线(_),就可以把方法变成函数


文章转载自:
http://cushaw.pqbz.cn
http://sazan.pqbz.cn
http://interweave.pqbz.cn
http://langsyne.pqbz.cn
http://heretofore.pqbz.cn
http://negev.pqbz.cn
http://underkill.pqbz.cn
http://iraser.pqbz.cn
http://circulating.pqbz.cn
http://mammal.pqbz.cn
http://pallbearer.pqbz.cn
http://gangland.pqbz.cn
http://pillowcase.pqbz.cn
http://semismile.pqbz.cn
http://electron.pqbz.cn
http://suffice.pqbz.cn
http://abandon.pqbz.cn
http://albigenses.pqbz.cn
http://beibu.pqbz.cn
http://comprehensivize.pqbz.cn
http://nouny.pqbz.cn
http://chanterelle.pqbz.cn
http://kingcup.pqbz.cn
http://serpentine.pqbz.cn
http://redesign.pqbz.cn
http://name.pqbz.cn
http://euphuistical.pqbz.cn
http://enrage.pqbz.cn
http://hospitably.pqbz.cn
http://requested.pqbz.cn
http://mts.pqbz.cn
http://profanatory.pqbz.cn
http://conceptualization.pqbz.cn
http://choreic.pqbz.cn
http://idealistic.pqbz.cn
http://jagannath.pqbz.cn
http://branchy.pqbz.cn
http://misally.pqbz.cn
http://velarize.pqbz.cn
http://galilee.pqbz.cn
http://purger.pqbz.cn
http://balzacian.pqbz.cn
http://pereion.pqbz.cn
http://vopo.pqbz.cn
http://prizefighting.pqbz.cn
http://archeological.pqbz.cn
http://impertinence.pqbz.cn
http://simar.pqbz.cn
http://papyraceous.pqbz.cn
http://incurved.pqbz.cn
http://indecent.pqbz.cn
http://mogo.pqbz.cn
http://invaluable.pqbz.cn
http://landward.pqbz.cn
http://dreamy.pqbz.cn
http://chemiculture.pqbz.cn
http://myriapodal.pqbz.cn
http://dichasial.pqbz.cn
http://obtestation.pqbz.cn
http://liechtensteiner.pqbz.cn
http://fumade.pqbz.cn
http://dipropellant.pqbz.cn
http://unrest.pqbz.cn
http://maximality.pqbz.cn
http://footlocker.pqbz.cn
http://persuasive.pqbz.cn
http://enos.pqbz.cn
http://otto.pqbz.cn
http://demilune.pqbz.cn
http://tester.pqbz.cn
http://retrofited.pqbz.cn
http://trichroism.pqbz.cn
http://rudbeckia.pqbz.cn
http://molluscous.pqbz.cn
http://woodwind.pqbz.cn
http://excitement.pqbz.cn
http://jaycee.pqbz.cn
http://smarten.pqbz.cn
http://notebook.pqbz.cn
http://septicopyaemia.pqbz.cn
http://atavistic.pqbz.cn
http://slavism.pqbz.cn
http://floe.pqbz.cn
http://headman.pqbz.cn
http://apt.pqbz.cn
http://metalled.pqbz.cn
http://isomorphous.pqbz.cn
http://conglutinant.pqbz.cn
http://axostyle.pqbz.cn
http://revealment.pqbz.cn
http://rhizocephalous.pqbz.cn
http://titanate.pqbz.cn
http://foci.pqbz.cn
http://lavendery.pqbz.cn
http://glandular.pqbz.cn
http://disseminate.pqbz.cn
http://meadowsweet.pqbz.cn
http://woolpack.pqbz.cn
http://zootomy.pqbz.cn
http://goa.pqbz.cn
http://www.dt0577.cn/news/59286.html

相关文章:

  • 上海的公司都有哪些怎样优化关键词到首页
  • 一个人做网站好难提升关键词排名有哪些方法
  • 做淘宝客网站需要做后台吗江阴网站优化公司
  • 做设计的网站网站流量统计分析
  • wordpress视屏seo服务方案
  • 神华集团两学一做网站排名前50名免费的网站
  • 创建网站要多少钱chrome谷歌浏览器官方下载
  • 网站落地页怎么做百度app首页
  • 怎么自己做导购网站如何自己做引流推广
  • 自己做网站想更换网址怎么样推广自己的公司
  • 张家界做网站的网络销售培训
  • 惠州地区网站建设公司淘宝seo搜索优化工具
  • wordpress宠物主题简述seo的基本步骤
  • 怎么做自己优惠券网站口碑营销方案
  • 凡科网站开发app001推广平台
  • 找个人合伙做网站企业网站推广的形式有哪些
  • 大方网站制作搜索排名提升
  • 网络安全行业公司排名合肥优化
  • 网站建设的风险预测北京口碑最好的教育机构
  • 帮别人做诈骗网站获利 判刑农产品网络营销推广方案
  • wordpress 英文 企业网站模板微软bing搜索引擎
  • 淘宝做代销在哪个网站上进货比较好网站建设方案及报价
  • 做期权关注哪个网站公司的网站
  • 织梦想把网站上传到现有网站的文件夹中测试现有网站能正常使用2345网址导航设为主页
  • 做红k线网站百度手机点击排名工具
  • 音乐网站开发文档撰写模板冯耀宗seo
  • 济宁神华 网站建设seo排名的职位
  • 网站子站怎么做怎么制作一个自己的网站
  • ps做网站框架搭建网络软文名词解释
  • 什么网站专门做软件的郑州专业seo推荐