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

wordpress文章网格/seo链接优化

wordpress文章网格,seo链接优化,关于进一步完善网站建设的请示,wordpress修改站点地址1、实验描述 完成Scala的基本操作,达到对Scala的基本熟悉。实验时长: 45分钟主要步骤: 练习Scala的基础语法学习使用Scala的基本数据类型学习使用Scala的函数 2、实验环境 虚拟机数量:1系统版本:Centos 7.5JDK 版本&…

1、实验描述

  • 完成Scala的基本操作,达到对Scala的基本熟悉。
  • 实验时长:
    • 45分钟
  • 主要步骤:
    • 练习Scala的基础语法
    • 学习使用Scala的基本数据类型
    • 学习使用Scala的函数

2、实验环境

  • 虚拟机数量:1
  • 系统版本:Centos 7.5
  • JDK 版本:1.8.0_131
  • Scala版本:2.11.11

3、相关技能

  • Scala 交互式环境的使用
  • Scala的语法形式

4、知识点

  • Scala基础概念
  • Scala交互式命令行
  • Scala基础语法
  • Scala数据类型
  • Scala函数与类
  • Scala的集合

5、实现效果

image-20211124205121984

6、实验步骤

6.1Scala基本概念:Scala是一个类似于Java的多范式编程语言,集成了面向对象和函数式编程的特性。Scala的特点主要有:面向对象、函数式编程、静态类型、运行于JVM(Java虚拟机),能执行Java代码

6.2Scala交互式命令行:

6.2.1Scala有一个类似与Python 的交互式命令行,
在终端输入关键字“scala”就可以进入,前提是要安装完scala,具体安装步骤如下

6.2.1.1复制软件公共目录“/home/zkpk/tgz/”下的scala压缩包到zkpk的家目录下

[zkpk@master ~]$ cd[zkpk@master ~]$ cp tgz/scala/scala-2.11.0.tgz  /home/zkpk

6.3解压并安装scala

[zkpk@master ~]$ tar xvzf scala-2.11.0.tgz

6.3.1查看scala目录

[zkpk@master ~]$ ll scala-2.11.0/

6.3.2配置scala环境变量

6.3.2.1使用vim 编辑 “/home/zkpk/.bash_profile
文件,里面追加如下所示内容,并保存.

[zkpk@master ~]$ vim /home/zkpk/.bash_profile
#SCALA
export SCALA_HOME=/home/zkpk/scale-2.11.0/
export PATH=$SCALA_HOME/bin:$PATH

6.3.2.2使用source命令使,环境变量生效

[zkpk@master ~]$ source  /home/zkpk/.bash_profile

6.3.2.3验证scala安装,命令行键入scala出现如图4所示即可

[zkpk@master ~]$ scala

6.3.2.4可以进行简单的算数运算,

scala> 1 + 1
res0: Int = 2scala> 2 * 3
res1: Int = 6

6.3.2.5退出时,只需要输入组合键“Ctrl +D”即可。

6.4基础语法。

6.4.1首先我们编写一个入门级的“hello world”,
使用vim编辑一个“.scala”后缀的文件。

[zkpk@master ~]$ vim HelloWorld.scala

6.4.2输入如下内容

object HelloWorld {def main(args: Array[String]) {//打印出字符串      println("Hello, world!")    }
}

6.4.3然后在命令行编译程序。编译后会生成一个.class
后缀的同名文件,我们只需要运行这个文件就可以了

[zkpk@master ~]$  scalac HelloWorld.scala
[zkpk@master ~]$  scala HelloWorld
Hello, World!

6.5常用的数据类型和变量, 为了方便演示,我们的操作都在scala命令行中进行

6.5.1常见的类型

数据类型    描述
Byte    8位有符号值,范围:-128~127
Short    16位有符号值,范围:-32768~32767
Int    32位有符号值,范围:-2147483648~2147483647
Long    64位有符号值,范围: -9223372036854775808~9223372036854775807
Float    32位IEEE754单精度浮点数
Double    64位IEEE754双精度浮点数
Char    16位无符号Unicode字符,范围:U+0000~U+FFFF
String    字符串
Boolean    布尔值:true / false
Unit    表示没有值
Null    空或空引用
Nothing    每一个其他类型的子类型,包括无值
Any    任何类型的超类型,任何object都是Any类型的
AnyRef    任何引用类型的超类型

6.5.2值和变量

6.5.2.1命令行键入scala进入scala交互式环境

6.5.2.2可以使用var声明变量,使用val声明值(也就是常量)。如:

下所示,如果改变val声明的常量的值就会报错。

[zkpk@master ~]$ scala
Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131).
Type in expressions to have them evaluated.
Type :help for more information.scala> val res1 = 1 + 1
res1: Int = 2scala> var name = "zkpk"
name: String = zkpkscala> name = "hello"
name: String = hello

6.6函数:函数通过def定义,在Scala中,你需要为函数参数指定类型签名。函数的形式如下所示

def functionName ([list of parameters]) : [return type] = {   function body   return [expr]
}

6.6.1Ctrl +D 组合键退出交互式环境,然后新建Test.scala类,键入如下内容并保存。

object Test {    def main(args: Array[String]) {        var result: Int = addOne(10)        println(result)    }    def addOne(x: Int): Int = {        return x + 1    }
}

6.6.1.1上面的代码中,定义了main函数和addOne函数。前面说了,main函数是程序入口函数,每个程序都必须要有的,addOne函数接收一个Int型参数,返回加1后的值。

6.6.1.2依次编译运行程序后,会看到程序的打印结果与我们的预期相符。

[zkpk@master ~]$ vim Test.scala
[zkpk@master ~]$ scalac Test.scala
[zkpk@master ~]$ scala Test

6.6.2函数的定义:在函数不带参数的情况下,调用的时候可以不用写括号,函数体内如果只有一条表达式,
则可以省略函数的大括号。如下所示

object Test2 {    def main(args: Array[String]) {        var res: Int = addOne()        var res2: Int = addOne       println(res)        println(res2)    }    def addOne(): Int = 1 + 1
}

6.6.2.1执行编译运行后,会看到程序的运行结果(打印两个数字2)。

[zkpk@master ~]$ vim Test2.scala
[zkpk@master ~]$ scalac Test2.scala
[zkpk@master ~]$ scala Test2
2
2

6.6.3使用下划线*部分应用一个函数,结果将得到另一个函数。Scala使用下划线表示不同上下文中的不同事物,你通常可以把它看作是一个没有命名的神奇通配符。在{
* + 2 }的上下文中。如下所示

object Test3 {def main(args: Array[String]) {var add1 = add(1, _:Int) # 传入一个参数,另一个一个占位var add2 = add1(2)    #此时再传入第二个参数println(add2)           # 返回两个参数累加的结果}def add(x: Int, y: Int) :Int = {return x + y}
}

 

[zkpk@master ~]$ vim Test3.scala
[zkpk@master ~]$ scalac Test3.scala
[zkpk@master ~]$ scala Test3
3

6.6.4柯里化函数:就是允许函数的参数根据实际的情况扮演不同的角色。如下所示,我们可以直接传入两个参数。也可以填上第一个参数并且部分应用第二个参数。

6.6.4.1打开scala命令行键入如下内容测试

scala> def func(x:Int)=(y:Int) => x*y
func: (x: Int)Int => Int             
scala> val f1 = func(10)  
#此时返回的是一个需要接受其余参数的函数
f1: Int => Int = <function1>
scala> f1(10)
#此时传入其余的参数(返回结果)
res1: Int = 100
scala>

6.6.5可变长参数:可以向函数中传入多个同类型的参数,如下示例。

# 定义一个需要传入不定长参数,然后返回将传入的参数转换成大写的函数
scala> def capaitalizeAll(args:String*)={args.map(_.capitalize)}
capaitalizeAll: (args: String*)Seq[String]
# 此时传入两个参数
scala> capaitalizeAll("hello", "world")
res2: Seq[String] = ArrayBuffer(Hello, World)
scala> capaitalizeAll("hello", "zkpk","org")
res3: Seq[String] = ArrayBuffer(Hello, Zkpk, Org)

6.7类,在类中使用def定义方法,和val关键字定义变量。方法就是可以访问类的状态函数。

6.7.1构造函数:构造函数不是特殊的方法,是除了类的方法定义之外的代码。通常可以增加一个构造函数参数,并用它来初始化内部状态

class Calculator(brand: String) {val color: String = if (brand == "zkpk") {"blue"} else if (brand == "hello") {"black"} else {"white"}// 实例方法def add(m: Int, n: Int): Int = m + n
}object Test4 {def main(args: Array[String]) {// 你可以使用构造函数来构造一个实例val calc = new Calculator("hello")println(calc.color)}
}
[zkpk@master ~]$ vim Test4.scala
[zkpk@master ~]$ scalac Test4.scala
[zkpk@master ~]$ scala Test4
black

6.7.2如果子类和父类在实际上没有什么区别,那么类型别名是优于继承的。

6.7.3重载,和java中类似,示例如下。

class EvenMoreScientificCalculator(brand: String) extends ScientificCalculator(brand) {def log(m: Int): Double = log(m, math.exp(1))
}

6.7.4抽象类: 定义一个抽象类,定义个方法但没有具体实现。不能创建抽象类的实例。

// 定义抽象类
abstract class Shape {def getArea():Int // subclass should define this
}
// 扩展抽象类
class Circle(r: Int) extends Shape {def getArea():Int = { r * r * 3 }
}
object Test5 {def main(args: Array[String]) {// 创建类实例val c = new Circle(2)println(c.getArea)}
}

[zkpk@master ~]$ vim Test5.scala
[zkpk@master ~]$ scalac Test5.scala
[zkpk@master ~]$ scala Test5
12

6.8特质(Traits: 特质是一些字段和行为的集合,可以扩展或混入我们的类中,class
可以扩展多个traits(使用关键字 with)。

6.9集合,Scala提供了常用的集合,包括:列表(List),集合(Set),映射(Map),选项(Option),元组(Tuple)

object Test6 {def main(args: Array[String]) {val x1 = List(1, 2, 3, 4)val x2 = Set(1, 3, 5)val x3 = Map("one" -> 1, "two" -> 2)val x4 = (2, "two")          // 定义元组val x5:Option[Int] = Some(5) // 定义选项println(x1)println(x2)println(x3)println(x4)println(x5)}
}

[zkpk@master ~]$ vim Test6.scala
[zkpk@master ~]$ scalac Test6.scala
[zkpk@master ~]$ scala Test6
List(1, 2, 3, 4)
Set(1, 3, 5)
Map(one -> 1, two -> 2)
(2,two)
Some(5)

7、总结

本次实验对scala的基本概念和使用语法有了深入的了解,为我们之后的使用和学习Spark打下了坚实的基础。

http://www.jmfq.cn/news/5296393.html

相关文章:

  • 房门户网站如何做优化/厦门关键词优化报价
  • 现在有男的做外围女网站客服吗/福州百度网站排名优化
  • 网站建设交易平台/灰色词首页排名接单
  • 为什么要做一个营销型网站/百度竞价推广是什么工作
  • 建设一个网站可以做什么/线上营销平台有哪些
  • 商洛市住户和城乡建设局网站信息价/世界球队最新排名
  • 可以做用户旅程图的网站/站长网站
  • python做网站验证码/seo每日一贴
  • 西部空间怎样上传网站/百度联盟一天多少收入
  • 镇江品牌网站建设/青岛seo优化公司
  • 郴州市做网站/百度推广代理商有哪些
  • 做网站买什么服务器 便宜/百度免费优化
  • dw做网站简单吗/云南网络推广公司排名
  • 南阳企业网站制作/中国最新领导班子
  • adobe建网站/百度竞价点击软件
  • wordpress主题转html/网站seo优化包括哪些方面
  • 青岛品牌设计/网站做优化好还是推广好
  • 滴道网站建设/线上营销模式有哪些
  • 网站的文件结构/seo点击工具
  • 如何申请自己的网站空间/品牌互动营销案例
  • 和田做网站的联系电话/聚合搜索引擎接口
  • 重庆网站建设方案书/seo包年服务
  • 昆明好的网站制作/长春网站建设定制
  • 设计公司网站官网/域名ip查询
  • 室内装饰公司网站模板/广告加盟
  • 做网站的升级人/seo常用的优化工具
  • 旅游地网站制作/nba最新交易消息
  • jquery 打开新网站/全球最大的磁力搜索引擎
  • 山东高端网站建设wang/icp备案查询官网
  • 南京百度网站建设/百度收录工具