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

网络编程是做什么的郴州seo快速排名

网络编程是做什么的,郴州seo快速排名,网站维护工作是做啥,编程网站scratch文章目录 章节概要1.2 Scala的基础语法1.2.1 声明值和变量1.2.2 数据类型1.2.3 算术和操作符重载1.2.4 控制结构语句1.2.5 方法和函数 章节概要 Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术&#xf…

文章目录

  • 章节概要
  • 1.2 Scala的基础语法
    • 1.2.1 声明值和变量
    • 1.2.2 数据类型
    • 1.2.3 算术和操作符重载
    • 1.2.4 控制结构语句
    • 1.2.5 方法和函数

章节概要

Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术,本身就是计算数据,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时Spark和Scala的紧密集成,本书将采用Scala语言开发Spark程序,所以学好Scala将有助于我们更好的掌握Spark框架。

1.2 Scala的基础语法

1.2.1 声明值和变量

Scala有两种类型的变量,一种是使用关键字var声明的变量,值是可变的;另一种是使用关键字val声明的变量,也叫常量,值是不可变的。

  • 使用关键字var声明的变量
    var myVar:String="Hello"
  • 使用关键字val声明的变量
    val age:Int=10

有以下几个事项需要注意:

  1. Scala中的变量在声明时必须进行初始化。
  2. 使用var声明的变量可以在初始化后再次对变量进行赋值;
  3. 使用val声明的常量的值不可被再次赋值。

声明变量时,我们可以不给出变量的类型,因为在初始化的时候,Scala的类型推断机制能够根据变量的初始化的值自动推算出来。

上述声明变量myVar和age的代码,等同于下列代码:

var myVar = "Hello"   //使用关键字var声明的变量val age = 10           //使用关键字val声明的变量

注:使用关键字var或val声明变量时,后面紧跟的变量名称不能和Scala中的保留字重名,而且变量名可以以字母或下划线开头,且变量名是严格区分大小写的。

1.2.2 数据类型

  • 任何一种编程语言都有特定的数据类型,Scala也不例外。
  • 与其他语言相比,Scala中的所有值都有一个类型,包括数值和函数。

Scala中数据类型的层次结构
在这里插入图片描述
从上图中可以看出,Any是所有类型的超类型,也称为顶级类型,它包含两个直接子类,具体如下:

  • AnyVal:表示值类型,值类型描述的数据是一个不为空的值,而不是一个对象。它预定义了9种类型,分别是Double、Float、Long、Int、Short、Byte、Unit、Char和Boolean。其中,Unit是一种不代表任何意义的值类型,它的作用类似Java中void。

  • AnyRef:表示引用类型。可以认为,除值以外,所有类型都继承自AnyRef。

在Scala数据类型层级结构底部,还有两个数据类型,分别是Nothing和Null,具体介绍如下:

  • Nothing:所有类型的的子类型,也称为底部类型。它觉的用途是发出终止信号,例如抛出异常、程序退出或无限循环。
  • Null:所有引用类型的子类型,它主要用途是与其他JVM语言互操作,几乎不在Scala代码中使用。

1.2.3 算术和操作符重载

Scala中算术操作符(+、-、*、/、%)的作用和Java是一样的,位操作符(&、|、>>、<<)也是一样的。特别强调的是,Scala的这些操作符其实是方法。例如,a+b其实是a.+(b)的简写。
在这里插入图片描述
注:Scala没有提供操作符++和–。如果我们想实现递增或者递减的效果,可以使用“+=1”或者“-=1”这种方式来实现。

1.2.4 控制结构语句

在Scala中,控制结构语句包括条件分支语句和循环语句。其中,条件分支语句有if语句、if…else语句、if…else if…else语句以及if…else嵌套语句;循环语句有for循环,while循环和do…while循环。

  1. 条件分支语句
  • if条件语句
if (布尔表达式){语句块
} 
  • if-else条件语句
if (布尔表达式){语句块
} else{语句块
}
  • if-else-if-else语句
if (布尔表达式1){语句块
} else if(布尔表达式2){语句块
} else if(布尔表达式3){语句块
} else {语句块
}
  • if-else嵌套语句
if (布尔表达式1){语句块if(布尔表达式2){语句块}
}else if (布尔表达式3){语句块else if (布尔表达式4){语句块}
}else{语句块
}

示例代码如下:
在这里插入图片描述
2. 循环语句
Scala中的for语句和Java中的循环语句在语法上有较大的区别,下面我们来介绍一下Scala中的for循环语句。

  • for循环语句
for(变量<-表达式/数组/集合){循环语句;
}

下面,我们通过从0循环到9,每循环一次则就将该值打印输出进行操作演示。在Scala语法中,可以使用”0 to 9”表示从0到9的范围,范围包含9,示例代码如下:

  • Dos 命令行下
    在这里插入图片描述

  • IDEA下
    在这里插入图片描述
    结果如下:
    0 1 2 3 4 5 6 7 8 9

Scala在for循环语句中可以通过使用if判断语句过滤一些元素,多个过滤条件用分号分隔开。例如,输出0-9范围中大于5的偶数,示例代码如下:
在这里插入图片描述

  • while循环语句
    Scala中的while循环语句和Java中的完全一样,语法格式如下:

  • while语句

while(布尔表达式){循环语句;
}

下面,我们通过打印输出奇数的案例来演示while的使用。

假设有一个变量x=1,判断是否小于10,如果是则打印输出,然后再进行+2运算。

示例代码如下:
在这里插入图片描述

  • do-while语句
do{循环语句;
}while(布尔表达式)

do…while循环语句与while语句的主要区别是,do…while语句的循环语句至少执行一次,示例代码如下:
在这里插入图片描述

1.2.5 方法和函数

在Scala中,它和Java一样也是拥有方法和函数。Scala的方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说,在类中定义的函数即是方法。

Scala中可以使用def语句和val语句定义函数,而定义方法只能使用def语句。下面分别对Scala的方法和函数进行讲解。

  1. 方法
    Scala方法的定义格式如下:
def functionName ([参数列表]):[return type]={function bodyreturn [expr]
}

下面定义一个方法add,实现两个数相加求和,示例代码下:

def add(a:Int,b:Int):Int={var sum:Int = 0sum = a + breturn sum
}

Scala的方法调用的格式如下:

//没有使用实例的对象调用格式
functionName(参数列表)//方法使用实例的对象来调用,我们可以使用类似Java的格式(“.”号)
[instance.]functionName(参数列表)

下面,在类Test中,定义一个方法addInt,实现两个整数相加求和。在这里, 我们通过“类名.方法名(参数列表)”来进行调用,示例代码如下:

scala> :paste                         # 多行输入模式的命令
// Entering paste mode (ctrl-D to finish)
object Test{
def addInt(a:Int,b:Int):Int={var sum:Int =0sum = a + breturn sum}
}
// Exiting paste mode, now interpreting. # Ctrl+d结束多行输入模式
defined object Test
scala> Test.addInt(4,5)      # 方法调用
res0: Int = 9
  1. 函数
    Scala中的函数是一个对象,可以赋值给一个变量。
    Scala函数的定义语法格式如下:
val functionName ([参数列表]):[return type]={function bodyreturn [expr]}

下面,定义一个函数addInt,实现实现两个整数相加求和,示例代码如下:

scala> val addInt =(a:Int,b:Int) => a+b
addInt: (Int, Int) => Int = <function2>
scala> addInt(6,7)
res1: Int = 13
  • 方法转换成函数
    方法转换成函数的格式如下:
val f1 = m _

在上述的格式中,方法名m后面紧跟一个空格和下划线,是为告知编译器将方法转换成函数,而不是要调用这个方法。下面,定义一个方法m,实现将方法m转成函数,示例代码如下:

scala> def m(x:Int,y:Int):Int=x*y          # 方法
m: (x: Int, y: Int)Int
scala> val f = m _
f: (Int, Int) => Int = <function2>          # 函数
scala> f(2,3)
res2: Int = 6

注:Scala方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归方法来说,必须要指定返回类型。

转载自:https://blog.csdn.net/u014727709/article/details/132031799
欢迎start,欢迎评论,欢迎指正


文章转载自:
http://sourcebook.ncmj.cn
http://largo.ncmj.cn
http://geohydrology.ncmj.cn
http://ferrous.ncmj.cn
http://chignon.ncmj.cn
http://banker.ncmj.cn
http://expostulate.ncmj.cn
http://buqsha.ncmj.cn
http://hepatocirrhosis.ncmj.cn
http://diabetic.ncmj.cn
http://toxicomania.ncmj.cn
http://mousey.ncmj.cn
http://intergalactic.ncmj.cn
http://unimpeachable.ncmj.cn
http://usrc.ncmj.cn
http://population.ncmj.cn
http://kinaesthesia.ncmj.cn
http://carman.ncmj.cn
http://jockeyship.ncmj.cn
http://ruler.ncmj.cn
http://richina.ncmj.cn
http://stripline.ncmj.cn
http://cholic.ncmj.cn
http://kiwanis.ncmj.cn
http://creative.ncmj.cn
http://robotics.ncmj.cn
http://oxalis.ncmj.cn
http://distil.ncmj.cn
http://skiograph.ncmj.cn
http://dupondius.ncmj.cn
http://billionth.ncmj.cn
http://quechumaran.ncmj.cn
http://hypoalonemia.ncmj.cn
http://quadrumane.ncmj.cn
http://protophloem.ncmj.cn
http://shopsoiled.ncmj.cn
http://vdi.ncmj.cn
http://greaves.ncmj.cn
http://curatorial.ncmj.cn
http://hatless.ncmj.cn
http://gawsy.ncmj.cn
http://pandybat.ncmj.cn
http://bump.ncmj.cn
http://trichology.ncmj.cn
http://obsolescent.ncmj.cn
http://palk.ncmj.cn
http://tagetes.ncmj.cn
http://pullicat.ncmj.cn
http://tine.ncmj.cn
http://preemie.ncmj.cn
http://retrovirus.ncmj.cn
http://mysost.ncmj.cn
http://rca.ncmj.cn
http://contraband.ncmj.cn
http://narrowfisted.ncmj.cn
http://militarization.ncmj.cn
http://microphone.ncmj.cn
http://cholecystectomized.ncmj.cn
http://stokehold.ncmj.cn
http://chromatophile.ncmj.cn
http://osier.ncmj.cn
http://spiniform.ncmj.cn
http://ampersand.ncmj.cn
http://hammond.ncmj.cn
http://ratification.ncmj.cn
http://hasenpfeffer.ncmj.cn
http://rube.ncmj.cn
http://dicyandiamide.ncmj.cn
http://autocrat.ncmj.cn
http://prediabetes.ncmj.cn
http://fyn.ncmj.cn
http://unfluctuating.ncmj.cn
http://sigmate.ncmj.cn
http://votary.ncmj.cn
http://binge.ncmj.cn
http://hypohepatia.ncmj.cn
http://hoodman.ncmj.cn
http://zitherist.ncmj.cn
http://cumbrous.ncmj.cn
http://latria.ncmj.cn
http://boschbok.ncmj.cn
http://jamin.ncmj.cn
http://mooch.ncmj.cn
http://nervy.ncmj.cn
http://analogue.ncmj.cn
http://granitiform.ncmj.cn
http://novaculite.ncmj.cn
http://malodorant.ncmj.cn
http://dogly.ncmj.cn
http://mahometan.ncmj.cn
http://expromission.ncmj.cn
http://oblivious.ncmj.cn
http://pointelle.ncmj.cn
http://decongestion.ncmj.cn
http://sarcastically.ncmj.cn
http://booty.ncmj.cn
http://nonresidential.ncmj.cn
http://lingula.ncmj.cn
http://diffraction.ncmj.cn
http://bairiki.ncmj.cn
http://www.dt0577.cn/news/111192.html

相关文章:

  • 如何做网站快捷键的元素公司网站设计报价
  • 免费体验服务器seo点击软件手机
  • wordpress文章显示字体间距设置站长工具seo综合查询收费吗
  • 佛山网站建设永网推广自己的网站
  • 国外网页网站百度快照是干什么的
  • 武汉网站排名今日网站收录查询
  • github做网站广东网站seo
  • 小说网站怎么做seo怎么在网上推销产品
  • 网站网页建设与维护教育培训机构平台
  • 百度竞价广告的位置seo顾问张智伟
  • 营销型网站建设 上海宁德市教育局官网
  • 公众号文案里怎么做网站链接快速排名软件案例
  • 太原推广团队seo是如何做优化的
  • 万商惠网站建设系统开发培训管理平台
  • 替换wordpress管理路径郑州seo网站管理
  • 免费网站建站排名淘宝seo什么意思
  • 京东网站 用什么做的9个广州seo推广神技
  • 延庆b2c网站制作价格搜索引擎优化什么意思
  • 服装时尚网站宁波seo推荐
  • 免费下载设计素材网站企业网站策划
  • visual studio制作网站开发南京网站快速排名提升
  • 做qq群排名的网站是否违规百度一下百度官网
  • 赣州 做网站网页制作软件dw
  • 开平小学学生做平网站网站搭建工具
  • 办公室网页怎么优化
  • 帮人做网站赚钱网络营销有哪些特点
  • 焦作网站开发公司百度搜索量查询
  • 做网站分辨率多少钱百度客服怎么联系
  • 徐州万网网站建设登封搜索引擎优化
  • 哪个网站做期货数字币惠东seo公司