Scala第四章节
Scala第四章节
scala总目录
章节目标
- 掌握分支结构的格式和用法
- 掌握for循环和while循环的格式和用法
- 掌握控制跳转语句的用法
- 掌握循环案例
- 理解do.while循环的格式和用法
1. 流程控制结构
1.1 概述
在实际开发中, 我们要编写成千上万行代码, 代码的顺序不同, 执行结果肯定也会受到一些影响, 并且有些代码是满足特定条件才能执行的, 有些代码是要重复执行的. 那如何合理规划这些代码呢? 这就需要用到: 流程控制结构了.
1.2 分类
-
顺序结构
-
选择(分支)结构
-
循环结构
注意: Scala和Java中的流程控制结构是基本一致的.
2. 顺序结构
2.1 概述
顺序结构是指: 程序是按照从上至下, 从左至右的顺序, 依次逐行执行的, 中间没有任何判断和跳转.
如图:
注意: 顺序结构是Scala代码的默认流程控制结构.
2.2 代码演示
val a = 10
println("a: " + a) //打印结果为10println("键盘敲烂, ")
println("月薪过万! ")
2.3 思考题
下边这行代码的打印结果应该是什么呢?
println(10 + 10 + "Hello,Scala" + 10 + 10)
提示: 代码是按照从上至下, 从左至右的顺序, 依次逐行执行的.
3. 选择结构(if语句)
3.1 概述
选择结构是指: 某些代码的执行需要依赖于特定的判断条件, 如果判断条件成立, 则代码执行, 否则, 代码不执行.
3.2 分类
- 单分支
- 双分支
- 多分支
3.3 单分支
所谓的单分支是指: 只有一个判断条件的if语句.
3.3.1 格式
if(关系表达式) {//具体的代码
}
注意: 关系表达式不管简单还是复杂, 结果必须是Boolean类型的值.
3.3.2 执行流程
-
先执行关系表达式, 看其结果是true还是false.
-
如果是true, 则执行具体的代码, 否则, 不执行.
-
如图:
3.3.3 示例
**需求: **
定义一个变量记录某个学生的成绩, 如果成绩大于或者等于60分, 则打印: 分数及格.
参考代码
//定义变量, 记录成绩
val score = 61
//判断成绩是否不小于60分
if(score >= 60) {println("成绩及格")
}
3.4 双分支
所谓的双分支是指: 只有两个判断条件的if语句.
3.4.1 格式
if(关系表达式) {//代码1
} else {//代码2
}
3.4.2 执行流程
- 先执行关系表达式, 看其结果是true还是false.
- 如果是true, 则执行代码1. 如果是false, 则执行代码2.
- 如图:
3.4.3 示例
**需求: **
定义一个变量记录某个学生的成绩, 如果成绩大于或者等于60分, 则打印: 分数及格, 否则打印分数不及格.
参考代码
//定义变量, 记录成绩
val score = 61
//判断成绩是否不小于60分
if(score >= 60) {println("成绩及格")
} else {println("成绩不及格")
}
3.5 多分支
所谓的多分支是指: 有多个判断条件的if语句.
3.5.1 格式
if(关系表达式1) {//代码1
} else if(关系表达式2) {//代码2
}else if(关系表达式n) { //else if可以有多组//代码n
} else {//代码n+1 //所有的关系表达式都不成立的时候, 执行这里的代码.
}
3.5.2 执行流程
- 先执行关系表达式1, 看其结果是true还是false.
- 如果是true, 则执行代码1, 分支语句结束. 如果是false, 则执行关系表达式2, 看其结果是true还是false.
- 如果是true, 则执行代码2. 分支语句结束. 如果是false, 则执行关系表达式3, 看其结果是true还是false.
- 以此类推, 直到所有的关系表达式都不满足, 执行最后一个else中的代码.
- 如图:
3.5.3 示例
**需求: **
定义一个变量记录某个学生的成绩, 根据成绩发放对应的奖励, 奖励机制如下:
[90, 100] -> VR设备一套
[80, 90) -> 考试卷一套
[0, 80) -> 组合拳一套
其他 -> 成绩无效
参考代码
//定义变量, 记录成绩
val score = 80
//根据成绩发放对应的奖励
if(score >= 90 && score <= 100) {println("VR设备一套")
} else if(score >= 80 && score < 90) {println("考试卷一套")
} else if(score >= 0 && score < 80) {println("组合拳一套")
} else {println("成绩无效")
}
3.6 注意事项
if语句在使用时, 要注意的事项有以下三点:
- 和Java一样, 在Scala中, 如果大括号{}内的逻辑代码只有一行, 则大括号可以省略.
- 在scala中,条件表达式也是有返回值的
- 在scala中,没有三元表达式,可以使用if表达式替代三元表达式
示例
定义一个变量sex,再定义一个result变量,如果sex等于"male",result等于1,否则result等于0
参考代码
//定义变量, 表示性别
val sex = "male"
//定义变量, 记录if语句的返回值结果
val result = if(sex == "male") 1 else 0
//打印结果为 result: 1
println("result: " + result)
3.7 嵌套分支
有些时候, 我们会涉及到"组合判断", 即一个分支结构中又嵌套了另一个分支结构, 这种写法就叫嵌套分支. 里边的那个分支结构叫: 内层分支, 外边的那个分支结构叫: 外层分支.
示例
定义三个变量a,b,c, 初始化值分别为: 10, 20, 30, 通过if分支语句, 获取其中的最大值.
思路分析
- 定义三个变量a, b, c, 分别记录要进行操作的值.
- 定义变量max, 用来记录获取到的最大值.
- 先判断a是否大于或者等于b.
- 条件成立, 说明 a大(或者等于b), 接着比较a和c的值, 获取最大值, 并将结果赋值给变量max
- 条件不成立, 说明 b大, 接着比较b和c的值, 获取最大值, 并将结果赋值给变量max
- 此时, max记录的就是a, b, c这三个变量的最大值, 打印即可.
参考代码
//1. 定义三个变量a, b, c, 分别记录要进行操作的值.
val a = 10
val b = 20
val c = 30
//2. 定义变量max, 用来记录获取到的最大值.
var max = 0
//3. 先判断a是否大于或者等于b.
if(a >= b) {//4. 走这里说明a大(或者等于b), 接着比较a和c的值max = if(a >= c) a else c
} else {//5. 走这里说明b大, 接着比较b和c的值max = if(b >= c) b else c
}
//6. 打印max的值
println("max: " + max)
注意: 嵌套一般不超过3层.
3.8 扩展: 块表达式
- scala中,使用{}表示一个块表达式
- 和if表达式一样,块表达式也是有值的
- 值就是最后一个表达式的值
问题
请问以下代码,变量a的值是什么?
val a = {println("1 + 1")1 + 1
}
println("a: " + a)
4. 循环结构
4.1 概述
循环,指的是事物周而复始的变化。而Scala中的循环结构,是指: 使一部分代码按照次数或一定的条件反复执行的一种代码结构。例如: 打印10次"Hello, Scala!", 如果纯写输出语句, 需要写10次, 而通过循环来实现的话, 输出语句只需要写1次, 这样就变得很简单了.
4.2 分类
- for循环
- while循环
- do.while循环
注意: 这三种循环推荐使用for循环, 因为它的语法更简洁, 更优雅.
4.3 for循环
在Scala中, for的格式和用法和Java中有些差异, Scala中的for表达式功能更加强大.
4.3.1 格式
for(i <- 表达式/数组/集合) {//逻辑代码
}
注意: 执行流程和Java一致
4.3.2 简单循环
**需求: **
打印10次"Hello, Scala!"
**参考代码: **
//定义一个变量, 记录1到10的数字
val nums = 1 to 10 //to是Scala中的一个关键字
//通过for循环, 打印指定的内容
for(i <- nums) {println("Hello, Scala! " + i)
}
**上述代码可以简写成: **
for(i <- 1 to 10) println("Hello, Scala! " + i)
4.3.3 嵌套循环
**需求: **使用for表达式,打印以下字符, 每次只能输出一个"*"
*****
*****
*****
步骤
- 使用for表达式打印3行,5列星星
- 每打印5个星星,换行
参考代码
//写法一: 普通写法
for(i <- 1 to 3) { //外循环控制行数for(j <- 1 to 5) { //内循环控制列数print("*") //每次打印一个*}println() //打印完一行(5个*)之后, 记得换行
}//写法二: 压缩版
for(i <- 1 to 3) { //这是两行代码for(j <- 1 to 5) if(j == 5) println("*") else print("*")
}//写法三: 合并版
for(i <- 1 to 3; j <- 1 to 5) if(j == 5) println("*") else print("*")
4.3.4 守卫
for表达式中,可以添加if判断语句,这个if判断就称之为守卫。我们可以使用守卫让for表达式更简洁。
语法
for(i <- 表达式/数组/集合 if 表达式) {//逻辑代码
}
示例
使用for表达式打印1-10之间能够整除3的数字
参考代码
// 添加守卫,打印能够整除3的数字
for(i <- 1 to 10 if i % 3 == 0) println(i)
4.4.5 for推导式
Scala中的for循环也是有返回值的, 在for循环体中,可以使用yield表达式构建出一个集合(可以简单理解为: 就是一组数据),我们把使用yield的for表达式称之为推导式.
示例
生成一个10、20、30…100的集合
参考代码
// for推导式:for表达式中以yield开始,该for表达式会构建出一个集合
val v = for(i <- 1 to 10) yield i * 10
println(v)
4.4 while循环
scala中while循环和Java中是一致的, 所以学起来非常简单.
4.4.1 格式
初始化条件
while(判断条件) {//循环体//控制条件
}
4.4.2 执行流程
- 执行初始化条件.
- 执行判断条件, 看其结果是true还是false.
- 如果是false则循环结束.
- 如果是true则执行循环体.
- 执行控制条件.
- 返回第二步, 重复执行.
4.4.3 示例
**需求: **
打印1-10的数字
参考代码
//初始化条件
var i = 1
//判断条件
while(i <= 10) {//循环体println(i)//控制条件i = i + 1
}
4.5 do.while循环
scala中do.while循环和Java中是一致的, 所以学起来非常简单.
4.4.1 格式
初始化条件
do{//循环体//控制条件
}while(判断条件)
4.4.2 执行流程
- 执行初始化条件.
- 执行循环体.
- 执行控制条件.
- 执行判断条件, 看其结果是true还是false.
- 如果是false则循环结束.
- 如果是true则返回第2步继续执行.
注意:
- do.while循环不管判断条件是否成立, 循环体都会执行一次.
- for循环, while循环都是如果判断条件不成立, 则循环体不执行.
4.4.3 示例
**需求: **
打印1-10的数字
参考代码
//初始化条件
var i = 1
do{//循环体println(i)//控制条件i = i + 1
}while(i <= 10) //判断条件
4.6 break和continue
- 在scala中,类似Java和C++的break/continue关键字被移除了
- 如果一定要使用break/continue,就需要使用scala.util.control包下的Breaks类的breable和break方法。
4.6.1 实现break
用法
-
导包.
import scala.util.control.Breaks._
-
使用breakable将for表达式包起来
-
for表达式中需要退出循环的地方,添加
break()
方法调用
示例
使用for表达式打印1-10的数字,如果遇到数字5,则退出for表达式
参考代码
// 导入scala.util.control包下的Break
import scala.util.control.Breaks._breakable{for(i <- 1 to 10) {if(i == 5) break() else println(i)}
}
4.6.2 实现continue
用法
continue的实现与break类似,但有一点不同:
注意:
- 实现break是用breakable{}将整个for表达式包起来.
- 而实现continue是用breakable{}将for表达式的循环体包含起来就可以了.
示例
用for表达式打印1~10之间, 所有不能整除3的数字.
// 导入scala.util.control包下的Break
import scala.util.control.Breaks._for(i <- 1 to 100 ) {breakable{if(i % 3 == 0) break()else println(i)}
}
5. 综合案例
5.1 九九乘法表
**需求: **
打印九九乘法表, 如下图:
步骤
-
通过外循环控制打印的行数.
-
通过内循环控制每行打印的列数.
注意: 因为列数是随着行数递增的, 即:
行数 该行的总列数 1 1 2 2 3 3 n n 结论: 如果用i表示行数, 那么该行的列数取值范围为: [1, i]
参考代码
- 方式一: 普通写法
//外循环控制行
for(i <- 1 to 9) { //内循环控制列for(j <- 1 to i) {print(s"${i} * ${j} = ${i * j}\t")}println() //别忘了换行
}
- 方式二: 合并版写法
//外循环控制行
for(i <- 1 to 9; j <- 1 to i) { print(s"${i} * ${j} = ${i * j}\t")if(j == i) println() //别忘了换行
}
5.2 模拟登陆
**需求: **
老王要登陆黑马官网学习Scala, 假设老王的账号和密码分别为"itcast", “heima”, 且同一账号只有3次登陆机会, 如果3次都录入错误, 则提示账号被锁定. 请用所学模拟该场景.
步骤
- 导包
- scala.io.StdIn
- scala.util.control.Breaks._
- 定义变量, 记录用户录入的账号和密码.
- 因为涉及到break的动作, 所以要用breakable{}把整个for表达式包裹起来
- 因为只有3次登陆机会, 所以推荐使用for循环.
- 提示用户录入他/她的账号和密码, 并接收.
- 判断用户录入的账号和密码是否正确.
- 如果录入正确, 则提示"登陆成功, 开始学习Scala!", 循环结束.
- 如果录入错误, 则判断是否还有登陆机会
- 有, 则提示"用户名或者密码错误, 您还有*次机会", 然后返回第5步继续执行.
- 没有, 则提示"账号被锁定, 请与管理员联系", 循环结束.
参考代码
//1. 导包
import scala.io.StdIn
import scala.util.control.Breaks._//2. 定义变量, 记录用户录入的账号和密码
var username = ""
var password = ""
//3. 因为涉及到break的动作, 所以要用breakable{}把整个for表达式包裹起来
breakable {//4. 因为只有3次登陆机会, 所以推荐使用for循环.for(i <- 1 to 3) {//5. 提示用户录入他/她的账号和密码, 并接收.println("请录入您的账号: ")username = StdIn.readLine()println("请录入您的密码: ")password = StdIn.readLine()//6. 判断用户录入的账号和密码是否正确.if(username == "itcast" && password == "heima") {//7. 走到这里, 说明登陆成功, 循环结束.println("登陆成功, 开始学习Scala吧!")break()} else {//8. 走到这里, 说明登陆失败. 则判断是否还有登陆机会if(i == 3) println("账号被锁定, 请与管理员联系!") else println(s"用户名或者密码错误, 您还有${3 - i}次机会")}}
}
scala学习配套视频
相关文章:
Scala第四章节
Scala第四章节 scala总目录 章节目标 掌握分支结构的格式和用法掌握for循环和while循环的格式和用法掌握控制跳转语句的用法掌握循环案例理解do.while循环的格式和用法 1. 流程控制结构 1.1 概述 在实际开发中, 我们要编写成千上万行代码, 代码的顺序不同, 执行结果肯定也…...
【C++入门指南】类和对象(上)
【C杂货店】类和对象(上) 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储规则7.2 例题7.3结构体内存对齐规则 八、this指针8.2 t…...
web:[极客大挑战 2019]PHP
题目 点进页面显示如下 根据页面提示,这个网站有备份文件,备份文件一般是bak文件格式,用dirsearch扫描 访问之后下载了一个文件 里面都是一些代码 在index.php中发现了一个类的文件,一个get传参,然后将传进的值进行反序…...
Firefox 开发团队对 Vue 3 进行优化效果显著
Mozilla 官方博客近日发表文章《Faster Vue.js Execution in Firefox》,介绍了 Firefox 开发团队对 Vue 3 进行的优化。 文章写道,在使用 Speedometer 3 对 Firefox 进行基准测试时,他们发现 Vue.js test 的测试结果从 Vue 2 升级到 Vue 3 后…...
【Verilog 教程】6.5 Verilog避免Latch
关键词:触发器,锁存器 Latch 的含义 锁存器(Latch),是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值。仅当锁存器处于使能状态时,输出才会随着…...
怒刷LeetCode的第21天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:哈希表 方法二:计数器数组 第二题 题目来源 题目内容 解决方法 方法一:分治法 方法二:快速幂 迭代 方法三:快速幂 递归 第三题 题目来源 题目内容 …...
Armv9 Cortex-A720的L2 memory system 和 L2 Cache
9 L2 memory system Cortex-A720核心的L2内存系统通过CPU bridge连接core与DynamIQ Shared Unit-120,其中包括私有的L2缓存。 L2缓存是统一的,每个Cortex-A720核心在一个集群中都有私有的L2缓存。 L2内存系统包括使用虚拟地址(VA)和程序计数器(PC)的数据预取引擎。不同…...
蓝桥等考Python组别九级003
第一部分:选择题 1、Python L9 (15分) 运行下面程序,可以输出几行“*”?( ) for i in range(3): for j in range(4): print(*, end = ) print() 6374正确答案:B 2、Python L9...
Python异步框架大战:FastAPI、Sanic、Tornado VS Go 的 Gin
一、前言 异步编程在构建高性能 Web 应用中起着关键作用,而 FastAPI、Sanic、Tornado 都声称具有卓越的性能。本文将通过性能压测对这些框架与Go的Gin框架进行全面对比,揭示它们之间的差异。 原文:Python异步框架大战:FastAPI、Sa…...
Docker笔记1
一、Docker介绍 Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制&a…...
TensorFlow-Federated简介与安装
1、简介 TensorFlow Federated(TFF)是一个用于机器学习和其他分布式数据计算的开源框架。TFF 的开发旨在促进联邦学习 (FL)的开放研究和实验。联邦学习是一种机器学习方法,其中一个共享的全局模型在许多参与的客户之间…...
【强化学习】基础概念
1. Agent (智能体) 智能体是进行决策和学习的实体,它能感知环境的状态,并基于策略采取动作以影响环境。智能体的目标是通过与环境的交互获得最大化的累积奖励。 2. Environment (环境) 环境是智能体所处的外部系统,它与智能体交互。环境的…...
云原生Kubernetes:K8S集群各组件服务重启
目录 一、理论 1.各组件服务重启命令 一、理论 1.各组件服务重启命令 (1)Master节点Node节点共同服务 systemctl restart etcd systemctl daemon-reload systemctl enable flanneld systemctl restart flanneld (2)Master节…...
闲话Python编程-循环
1. for循环 Python的for语句有点特别,只能对序列和字符串进行处理,序列自然包括list、tuple和range对象。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 练习for语句def loop_for():names [Tom, Jack, Black]for name in names:print(name)s ab…...
建筑能源管理(3)——建筑能源监管
为了全面落实科学发展观,提高建筑能源管理水平,进一步降低能源和水资源消耗、合理利用资源,以政府办公建筑和大型公共建筑的运行节能管理为突破口,建立了既有政府办公建筑和大型公共建筑运行节能监管体系,旨在提高政府…...
中国逐年干燥度指数数据集
简介: 中国逐年干燥度指数,空间分辨率为1km,时间为1901-2022,为比值,没有单位。该数据集是基于中国1km逐月潜在蒸散发(PET)和降水量(PRE)采用比值法计算式得到ÿ…...
Azure Arc 概要:功能、管理和应用场景详解,AZ900 考点示例
文章目录 本文大纲一、什么是 Azure Arc二、使用 Azure Arc 可以做什么操作三、使用 Azure Arc 可以管理什么资源3.1 如何使用Azure Arc与服务器? 四、Azure Arc 支持的主要场景五、在 AZ900 中的考点示例5.1 示例题 15.2 示例题 2 本文大纲 本文思维导图概述的主要内容&…...
JavaScript Web APIs第一天笔记
复习: splice() 方法用于添加或删除数组中的元素。 **注意:**这种方法会改变原始数组。 删除数组: splice(起始位置, 删除的个数) 比如:1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…...
十六.镜头知识之工业镜头的质量判断因素
十六.镜头知识之工业镜头的质量判断因素 文章目录 十六.镜头知识之工业镜头的质量判断因素1.分辨率(Resolution)2.明锐度(Acutance)3.景深(DOF):4. 最大相对孔径与光圈系数5.工业镜头各参数间的相互影响关系5.1.焦距大小的影响情况5.2.光圈大小的影响情况5.3.像场中…...
网络协议--概述
1.2 分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统,如图1-1所示。每一层负责不同的功能: 1.链…...
aarch64 平台 musl gcc 工具链手动编译方法
目标 手动编译一个 aarch64 平台的 musl gcc 工具链 musl libc 与 glibc、uclibc 等,都是 标准C 库, musl libc 是基于系统调用之上的 标准C 库,也就是用户态的 标准C 库。 musl libc 轻量、开源、免费,是一些 操作系统的选择,当前 Lite-OS 与 RT-Smart 等均采用自制的 mu…...
计算机图像处理-高斯滤波
高斯滤波 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到…...
lv5 嵌入式开发-9 信号机制(上)
目录 1 信号机制 2 信号的产生 3 常用信号 4 相关命令 4.1 信号相关命令 kill / killall 4.2 信号发送 – kill / raise 4.3 定时器函数相关函数 – alarm /ualarm/ pause 4.4 信号捕捉:设置信号响应方式 – signal /sigaction,闹钟实现 4.5 子…...
460. LFU 缓存
请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。 实现 LFUCache 类: LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键 key 存在于缓存中,则获取键的值,否则返回 -1…...
YOLOV8 C++ opecv_dnn模块部署
废话不多说:opencv>4.7.0 opencv编译不做解释,需要的话翻看别的博主的编译教程 代码饱含V5,V7,V8部署内容 头文件yoloV8.h #pragma once #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; using name…...
STM32 DMA从存储器发送数据到串口
1.任务描述 (1)ds18b20测量环境温度存储到存储器(数组)中。 (2)开启DMA将数组中的内容,通过DMA发送到串口 存在问题,ds18b20读到的数据是正常的,但是串口只是发送其低…...
Flask连接数据库返回json数据
常用方法: json.dumps(字典) 将python的字典转换为json字符串json.loads(字符串) 将字符串转换为python中的字典方法一:将python字典转化为json from flask import Flask import jsonapp Flask(__name__)app.route("/index") def index():# 返回json数据的方法…...
Openresty通过Lua+Redis 实现动态封禁IP
求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。并且可以设置失效 1.安装Openresty(编译安装) wget https://openresty.org/download/openresty-1.…...
碎片笔记|AIGC核心技术综述
前言:AIGC全称为AI-Generated Content,直译为人工智能内容生成。即采用人工智能技术来自动生产内容。AIGC在2022年的爆发,主要是得益于深度学习模型方面的技术创新。不断涌现的生成算法、预训练模型以及多模态等技术的融合引发了AIGC的技术变…...
28385-2012 印刷机械 锁线机 学习笔记
声明 本文是学习GB-T 28385-2012 印刷机械 锁线机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了锁线机的型式、基本参数、要求、试验方法、检验规则、标志、包装、运输与贮存。 本标准适用于用线将书帖装订成书芯的锁线机。 …...
静态网站怎么做百度推广/企业网络营销顾问
我希望我的Spring批处理应用程序一次从数据库中读取50条记录,然后将这50条记录发送到处理器,然后再发送给编写器.有人可以告诉我如何做到这一点.我尝试使用JdbcPagingItemReader并将pageSize设置为50,该值可读取50条记录,但是rowMapper,处理器和writer一次只能接收一条记录,而不…...
药理学网站建设方案/大数据精准营销系统
使用贝塞尔曲线, // 小于四个角 圆角 -(void)setbor{NSString *str " couldnt fit this all in a comment to lomanfs answer. So Im adding it as an answer.";//计算字符高度[Corner layoutHeightWithLable:self.label text:str];/*1.使用空白 view ad…...
做app和做网站/广州网络推广平台
公元二零一二年,此猴子在此国度出世。掌握内功心法为传说中的特级心法《道难特》另外了解过另一特级心法为《甲骨文之佳万》。为此在纠结以后的拜师之路,请各位大侠帮助,谢谢。转载于:https://www.cnblogs.com/ja-net/archive/2012/05/10/249…...
怎么看一个网站是用什么程序做的/搜索引擎营销有哪些
分享如何设置 macOS 暗夜模式,需要的朋友可以试试这个教程 如何在 macOS 中设置手动暗模式调度 1、单击菜单栏中的Apple 标志,然后单击系统偏好设置。 2、单击常规。 3、在外观下,选择自动。 4、单击返回以返回到系统偏好设置。 5、单击显示…...
类似凡科网的网站/小程序开发收费价目表
缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美…...
龙岗网站制作市场/网上营销的平台有哪些
昨天在做项目的时候,代码写完-编译-运行。然后出现了这个可爱的“HTTP Error 503。The service is unavailable”。 这是电脑术语!意思是“地址错误,主机没找到!(没看到主机)”~~~ 真晕,以前没有遇到过这个情况。唉&am…...