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

Scala

1、Scala语言有什么特点?什么是函数式编程?有什么优点?

  1、scala语⾔集成⾯向对象和函数式编程

  2、函数式编程是⼀种典范,将电脑的运算视作是函数的运算

  3、与过程化编程相⽐,函数式编程⾥的函数计算可以随时调⽤,函数式编程中,函数是⼀等公民

2、scala中的闭包

  1、定义:你可以在任何作⽤域内定义函数:包,类甚⾄是另⼀个函数或⽅法。在函数体内,可以访问到相应作⽤域内地任何变量。(重点)函数可以在变量不再处于作⽤域内时被调⽤。

例如:

1	def mulBy(factor:Double) = (x:Double) => factor * x
2	//开始调⽤
3	val tripe = mulBy(3)
4	val half = mulBy(0.5)
5	println(tripe(14) + " " + half(14))

  这就是一个闭包

3、scala中的柯里化

  定义:柯⾥化指的是将原来接受两个参数的函数变成新的接受⼀个参数的函数的过程。新的函数返回⼀个以原有的第⼆个参数作为参数的函数

例如:

1	def mul(x:Int,y:Int) = x * y //该函数接受两个参数
2	def mulOneAtTime(x:Int) = (y:Int) => x * y //该函数接受⼀一个参数⽣生成另外⼀一个接受单个参数的函数
3	这样的话,如果需要计算两个数的乘积的话只需要调⽤用:
4	mulOneAtTime(5)(4)

4、scala中的模式匹配

  scala的模式匹配包括了了一系列的备选项,每个替代项以关键字⼤小写为单位,每个替代方案包括一个模式或多个表达式,如果匹配将会进行计算,箭头符号=>将模式与表达式分离

例如:

1	obj match{
2	case 1 => "one"
3	case 2 => "two"
4	case 3 => "three"
5	case _ => default
6 }

5、case class和class的区别

5.1 case class

  是一个样本类,样本类是一种不可变切可分解类的语法糖,也就是说在构建的时候会自动生成一些语法糖,具有以下几个特点:

  1、自动添加与类名一致的构造函数(也就是伴生对象,通过apply方法实现),也就是说在构造对象的时候不需要使用new关键字

  2、样本类中的参数默认是val关键字,不可以修改

  3、默认实现了toString,equals,hashcode,copy方法

  4、样本类可以通过==来比较两个对象,不在构造方法内地属性不会用在比较上

5.2 class

  class是⼀个类

  class在构造对象的时候需要使⽤new关键字才可以。

6、隐式转换

  隐式转换(implicit conversion)是指在 Scala 编程中,可以定义一些隐式的方法或函数,使得编译器在需要某种类型的实例时,自动地将另外一种类型的实例进行转换。这种转换过程是在编译期间完成的,因此也称为编译期间隐式转换(implicit conversion)

  隐式转换的主要作用是增强 Scala 的表达能力和扩展语言的功能。通过定义一些隐式转换,我们可以让编译器自动地将一些常见的类型转换或者操作转换成我们期望的结果,从而让代码更加简洁和易于理解。例如,在 Scala 中,我们可以通过隐式转换来实现类型的自动转换,将一个字符串转换成整数,将一个整数转换成浮点数,等等。

  隐式转换的具体实现方式是通过定义隐式转换函数或者隐式类来实现的。隐式转换函数是一个接收一个参数并返回另外一个类型的函数,可以用来将一个类型隐式地转换成另外一个类型。隐式类是一个带有隐式关键字的类,用来扩展现有类的功能。当编译器发现类型不匹配时,会自动地查找可用的隐式转换函数或者隐式类来进行类型转换。

  需要注意的是,隐式转换的滥用可能会导致代码难以理解和维护。因此,在使用隐式转换时,需要遵循一定的规范和准则,避免出现意料之外的结果。

  假设我们有一个 Point 类型,用来表示平面上的一个点,它有两个 Double 类型的属性 x 和 y。现在我们想要给 Point 类型增加一些扩展方法,比如计算两个点之间的距离。我们可以使用隐式转换来实现这个功能。

  首先,我们定义一个 Double 类型的隐式类 DistanceOps,用来扩展 Double 类型的功能:

implicit class DistanceOps(d: Double) {def distanceTo(other: Point): Double =math.sqrt((d - other.x) * (d - other.x) + (d - other.y) * (d - other.y))
}

  然后,我们在 Point 类型中定义一个 distanceTo 方法,用来计算两个点之间的距离:

case class Point(x: Double, y: Double) {def distanceTo(other: Point): Double =math.sqrt((x - other.x) * (x - other.x) + (y - other.y) * (y - other.y))
}

  最后,我们就可以使用 Point 类型的 distanceTo 方法来计算两个点之间的距离了。由于我们已经定义了一个 Double 类型的隐式类 DistanceOps,编译器会自动地将 Double 类型的值进行隐式转换,从而让我们可以使用 distanceTo 方法:

val p1 = Point(0, 0)
val p2 = Point(1, 1)
val distance = p1.distanceTo(p2) // 相当于 (p1.x, p1.y) 到 (p2.x, p2.y) 的距离
println(distance) // 输出 1.4142135623730951

  通过这个例子,我们可以看到隐式转换的作用:通过定义隐式类和扩展方法,让我们可以自然地扩展现有类型的功能,从而让代码更加简洁和易于理解。

7、scala中的伴生类和伴生对象是怎么一回事

  在 Scala 中,每个类都可以有一个同名的伴生对象(companion object),用于存放静态方法和属性,或者说是类级别的方法和属性。伴生对象的名称与类的名称相同,但它们的定义使用了 object 关键字而不是 class 关键字。

  相对应的,伴生对象和伴生类之间是有关联的。具体来说,一个类和它的伴生对象必须在同一个源文件中定义,并且它们的名称必须相同。

  伴生类和伴生对象之间可以互相访问对方的私有成员。也就是说,伴生对象可以访问伴生类的私有成员,伴生类也可以访问伴生对象的私有成员。

  下面是一个示例,展示了如何定义伴生类和伴生对象:

scala
Copy code
class MyClass(val name: String) {def hello(): Unit = println(s"Hello, $name!")
}object MyClass {def create(name: String): MyClass = new MyClass(name)
}

  在上面的代码中,我们定义了一个名为 MyClass 的类,它有一个名为 name 的属性和一个名为 hello 的方法。我们同时也定义了一个同名的伴生对象 MyClass,它有一个名为 create 的静态方法,用于创建 MyClass 的实例。

  使用伴生对象可以让我们方便地创建和操作类级别的属性和方法,从而使代码更加简洁和易于理解。

8、scala和java 的区别

  1、变量声明:

  scala:只需要申明是val或是var,具体的类型(比如String,Int,Double等等)由编译器⾃行推断

  java: 需要在变量前⾯先注明变量的类型

  2、返回值:

  scala:申明返回值是在后⾯,并且不需要return语句,⾮要用,也不是不可以

  java: 如果有返回值,需要return语句

  3、结束符

  scala:不需要使用分号作为结束符

  java: 每个语句结束后需要分号作为结束符

  4、循环

  scala:循环语句可以⽤于守卫

  java: 不可以这么写

  5、通配符:

  scala:_

  java: *

  6、构造器

  scala:构造器名称为this,scala的辅助构造器之前需要有一个主构造器或者其他辅助构造器,并且scala的构造器参数可以直接放在类的后⾯

  java: 构造器名称需要与类名称一样

  7、内部类

  scala:scala实例化的内部类是不同的,可以使⽤类型投影,例如 Network#Person表示Network的Person类

  8、接⼝

  java:内部类从属于外部类

  scala:scala中接口称为特质(trait),特质中是可以写抽象方法,也可以写具体的方法体以及状态。且类是可以实现多个特质的。特质中未被实现的⽅方法默认就是抽象的⼦子类的实现或继承统一使⽤用的事extends关键字,如果需要实现或继承多个使⽤用with关键字特质中可以有构造器特质可以继承普通的类,并且这个类称为所有继承trait的父类

  9、赋值

  java: java中的接口(interface),接口中的方法只能是抽象方法,不可以写具体包含方法体的方法接口中不能有抽象的属性,且属性的修饰符都是public static final

  类实现接口需要使用implements关键字,实现多个接口,需要用逗号隔开接口中不可以有构造器

  接口不可以继承普通的类

  scala:scala中的赋值语句返回结果是unit的不可以串联,例如x=y=1,这样是有问题的,x并没有被赋值为 java: x=y=1,这样是没问题的

9、谈谈scala的尾递归

  1. 正常得递归,每一次递归步骤,需要保存信息到堆栈中去,当递归步骤很多的时候,就会导致内存溢出

  2. 尾递归,就是为了解决上述的问题,在尾递归中所有的计算都是在递归之前调用,编译器可以利⽤这个属性避免堆栈错误,尾递归的调用可以使信息不插⼊堆栈,从⽽优化尾递归

例如:

5 + sum(4) // 暂停计算 => 需要添加信息到堆栈
5 + (4 + sum(3))
5 + (4 + (3 + sum(2)))
5 + (4 + (3 + (2 + sum(1))))
5 + (4 + (3 + (2 + 1)))
15

尾递归

@tailrec	//告诉编译器器,强制使⽤用尾递归def tailSum(n:Int,acc:Int = 0):Int = { if (n ==0 ){acc
}else{tailSum(n - 1,acc + n)
}}//执⾏行行结果tailSum(5) // tailSum(5, 0) 默认
值是0	
tailSum(4, 5) // 不不需要暂停计算
tailSum(3, 9)
tailSum(2, 12)tailSum(1, 14)
tailSum(0, 15)
15

10、 var,val和def三个关键字之间的区别?

  1. var是变量声明关键字,类似于Java中的变量,变量值可以更改,但是变量类型不能更改。

  2. val常量声明关键字。

  3. def 关键字⽤于创建方法(注意方法和函数的区别)

  4. 还有一个lazy val(惰性val)声明,意思是当需要计算时才使用,避免重复计算

11、 trait(特质)和abstract class(抽象类)的区别?

  (1)一个类只能集成一个抽象类,但是可以通过with关键字继承多个特质;

  (2)抽象类有带参数的构造函数,特质不行(如 trait t(i:Int){} ,这种声明是错误的)

12、object和class的区别?

  object是类的单例对象,开发⼈人员⽆需用new关键字实例化。如果对象的名称和类名相同,这个对象就是伴生对象(深⼊了解请参考问题Q7)

13、 case class (样本类)是什么?

  样本类是一种不可变且可分解类的语法糖,这个语法糖的意思大概是在构建时,自动实现⼀些功能。样本类具有以下特性:

  (1)⾃动添加与类名一致的构造函数(这个就是前面提到的伴生对象,通过apply⽅法实现),即构造对象时,不需要new;

  (2)样本类中的参数默认添加val关键字,即参数不能修改;

  (3)默认实现了toString,equals,hashcode,copy等方法;

  (4)样本类可以通过==比较两个对象,并且不在构造⽅法中定义的属性不会用在比较上。

14、 unapply 和apply⽅法的区别, 以及各自使用场景?

  先讲⼀个概念——提取器,它实现了构造器相反的效果,构造器从给定的参数创建⼀一个对象,然⽽而提取器却从对象中提取出构造该对象的参数,scala标准库预定义了⼀些提取器,如上⾯面提到的样本类中,会⾃动创建⼀一个伴生对象(包含apply和unapply⽅方法)。

  为了成为一个提取器,unapply⽅法需要被伴生对象。

  apply⽅法是为了自动实现样本类的对象,⽆需new关键字。

15、 Scala类型系统中Nil, Null, None, Nothing四个类型的区别?

  1、Null是⼀个trait(特质),是所有引用类型AnyRef的⼀个⼦类型,null是Null唯一的实例。

  2、Nothing也是一个trait(特质),是所有类型Any(包括值类型和引用类型)的子类型,它不在有子类型,它也没有实例,实际上为了一个方法抛出异常,通常会设置⼀个默认返回类型。

  3、Nil代表⼀一个List空类型,等同List[Nothing]

  4、None是Option monad的空标识(深入了解请参考问题Q11)

16、Unit类型是什什么?

  Unit代表没有任何意义的值类型,类似于java中的void类型,他是anyval的子类型,仅有⼀个实例例对象"( )"

17、 call-by-value和call-by-name求值策略略的区别?

  (1) call-by-value是在调⽤用函数之前计算;

  (2) call-by-name是在需要时计算

18、Option类型的定义和使⽤用场景?

  在Java中,null是一个关键字,不是⼀个对象,当开发者希望返回一个空对象时,却返回了了⼀个关键字,为了解决这个问题,Scala建议开发者返回值是空值时,使⽤Option类型,在Scala中null是Null的唯⼀对象,会引起异常,Option则可以避免。Option有两个子类型,Some和None(空值)

19、yield如何工作?

  yield⽤于循环迭代中生成新值,yield是comprehensions的一部分,是多个操作(foreach, map, flatMap, filter or withFilter)的composition语法糖。(深⼊了解请参考问题Q14)

20、解释隐示参数的优先权

  在Scala中implicit的功能很强大。当编译器寻找implicits时,如果不注意隐式参数的优先权,可能会引起意外的错误。因此编译器会按顺序查找隐式关键字。顺序如下:

(1)当前类声明的implicits ;
(2)导⼊入包中的 implicits;
(3)外部域(声明在外部域的implicts);
(4) inheritance
(5) package object
(6) implicit scope like companion objects

21、comprehension(推导式)的语法糖是什什么操作?

  comprehension(推导式)是若⼲个操作组成的替代语法。如果不用yield关键字,comprehension(推导式)可以被forech操作替代,或者被map/flatMap,filter代替。

22、谈谈对Scala的Streams的理理解?

23、什么是vaule class?

  开发时经常遇到这个的问题,当你使用integer时,希望它代表一些东⻄西,⽽不是全部东西,例如,⼀个integer代表年龄,另⼀个代表高度。由于上述原因,我们考虑包裹原始类型⽣生成⼀个新的有意义的类型(如年龄类型和高度类型)。

  Value classes 允许开发者安全的增加⼀个新类型,避免运⾏时对象分配。有一些 必须进⾏分配的情况 and 限制,但是基本的思想是:在编译时,通过使⽤用原始类型替换值类实例例,删除对象分配。

24、Option ,Try 和 Either 三者的区别?

  1、这三种monads允许我们显示函数没有按预期执行的计算结果。

  2、Option表示可选值,它的返回类型是Some(代表返回有效数据)或None(代表返回空值)。

  3、Try类似于Java中的try/catch,如果计算成功,返回Success的实例例,如果抛出异常,返回Failure。

  4、Either可以提供⼀一些计算失败的信息,Either有两种可能返回类型:预期/正确/成功的 和 错误的信息。

25、什么是高阶函数?

  高阶函数指能接受或者返回其他函数的函数,scala中的filter map flatMap函数都能接受其他函数作为参数。

相关文章:

Scala

1、Scala语言有什么特点?什么是函数式编程?有什么优点? 1、scala语⾔集成⾯向对象和函数式编程 2、函数式编程是⼀种典范,将电脑的运算视作是函数的运算 3、与过程化编程相⽐,函数式编程⾥的函数计算可以随时调⽤&…...

《数据分析方法论和业务实战》读书笔记

《数据分析方法和业务实战》读书笔记 共9章:前两章入门,3-7章介绍基本方法,8章从项目实战介绍数据分析,9章答疑常见问题。 1 数据分析基础 数据分析的完整流程 数据-》信息-〉了解现状-》发现原因-〉获取洞察-》问题机会-〉驱动…...

华为OD机试 - 射击比赛(Python)

射击比赛 题目 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高三个分数之和进行降序排名 输出降序排名后的选手 ID 序列 条件如下: 一个选手可以有多个射击成绩的分数 且次序不固定如果一个选手成绩小于三个 则认为选手的所有成绩无效 排名忽…...

uniapp自定义验证码输入框,隐藏光标

一. 前言 先看下使用场景效果图: 点击输入框唤起键盘,蓝框就相当于input的光标,验证码输入错误或者不符合格式要求会将字体以及边框改成红色提示,持续1s,然后清空数据,恢复原边框样式;5位验证…...

基于SSM框架的生活论坛系统的设计与实现

基于SSM框架的生活论坛系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景…...

spring注解使用中常见的概念性问题

Spring注解使用中常见的概念性问题Configuration有什么用?Configuration和XML有什么区别?哪种好?Autowired 、 Inject、Resource 之间有什么区别?Value、PropertySource 和 Configuration?Spring如何处理带Configurati…...

Module理解及使用

ES6的模块化设计思想是静态化,也就是说,在编译的时候确定模块的依赖关系,以及输出输出入的变量。而CommonJS和AMD模块都是在运行时确定的。ES6的模块不是对象,而是通过export显示指定输出的代码,再通过import命令输入。…...

ngix 常用配置之 location 匹配规则

大家好,我是 17。 今天和大家详细聊聊 nginx 的 location 匹配规则 location 匹配规则 匹配规则在后面的 try_files 中有举例 location 按如下优先级匹配 绝对匹配,一个字符也不能差^~ 前缀匹配~(区分大小写), ~*(不…...

chatGPT与人形机器人,高泽龙接受中国经营报采访谈二者发展

1.相较于Chatgpt,人形机器人的市场前景有多大?答:人形机器人的市场前景可以用“无限大”来形容,这看起来很夸张而且并不合理,其实是客观而且中肯的。因为这个问题就仿佛是五十年前,人们问“未来的电脑市场有…...

进程同步——读者-写者问题

读者-写者问题 互斥制约与合作制约双重关系的进程同步问题描述是: 一个被多个进程共享的文件、记录或数据结构,允许进程对其执行读、写操作。读进程称为读者,写进程称为写者。其允许多个进程同时读取,但只要有一个进程在读&#…...

Android自动化配置

1 搭建APPIUM环境 1.1 安装node.js Appium是使用nodejs实现的,所以node是解释器,需要第一步安装好 node.js的安装包下载地址: https://nodejs.org/en/download/ 注意:node.js的安装包的下载在官网有两种版本,建议大…...

Java程序怎么运行?final、static用法小范围类型转大范围数据类型可以吗?

文章目录1.能将int强制转换为byte类型的变量吗?如果该值大于byte类型的范围,将会出现什么现象?2. Java程序是如何执行的?3.final 在 Java 中有什么作用?4.final有哪些用法?5.static都有哪些用法?1.能将int强制转换为…...

【数据管理】谈谈哈希原理和散列表

一、说明 提起哈希,有人要说:不就是一个稀疏表格么,谈的上什么原理?我说:非也,哈希是是那种看似无物,其实解决大问题的东西。如何提高数据管理效率?这是个问题,随着这个问…...

浙江工业大学关于2023年MBA考试初试成绩查询及复试阶段说明

根据往年的情况,2023浙江工业大学MBA考试初试成绩可能将于2月21日公布,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。 1、初试成绩查询:考生可登录中国研究生招生信息网“全国硕士研究生招生考…...

08:进阶篇 - CTK 插件元数据

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 元数据 元数据用于准确描述一个插件的特征,这样才能让 CTK Plugin Framework 适当地对 Plugin 进行各种处理(例如:依赖解析)。 CTK Plugin Framework 本身提供了一些清单头(元数据属性、条目),在 c…...

数据结构与算法之数组寻找峰值分而治之

这一篇分享一道在数组中寻找峰值的题目,使用到分而治之,二分查找等思想。本文章会讲解这个二分查找的本质,以及为什么要用二分查找,它能解决哪一类题目?目录:一.题目及其要求1.分而治之2.题目思路3.具体做法…...

Metasploit 使用篇

文章目录前言一、msfconsole启动msfconsole命令分类核心命令模块命令作业命令资源脚本命令后台数据库命令二、使用案例更改提示和提示字符运行shell命令信息收集:HTTP头检测前言 理解了Meatasploit框架架构、原理之后,自然就很好理解它的使用逻辑 find…...

Java岗面试题--Java并发(日积月累,每日三题)

目录面试题一:并行和并发有什么区别?面试题二:线程和进程的区别?追问:守护线程是什么?面试题三:创建线程的几种方式?1. 继承 Thread 类创建线程,重写 run() 方法2. 实现 …...

Prometheus监控案例之blackbox-exporter

blackbox-exporter简介 blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案,可以通过HTTP、HTTPS、DNS、ICMP、TCP和gRPC方式对目标实例进行检测。可用于以下使…...

Makefile基础使用和实战详解

Makefile基础使用和实战详解一、基础1.1、简单的Makefile1.2、多文件编译1.3、伪对象.PHONY二、变量2.1、自动变量2.2、特殊变量2.3、变量的类别2.4、变量及其值的来源2.5、变量引用的高级功能2.6、override 指令三、模式四、函数4.1、addprefix 函数4.2、filter函数4.3、filte…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...