spark_20180328
// 2.1 条件表达式
val x = 2
val s = if (x > 0) 1 else -1
if (x > 0) "positive" else -1
// 返回值类型不一致,无法确定返回值的类型,所以返回Any类型 // 2.2 语句终止
var n = 2
var r = 0
if (n > 0) {r = r * n; n -= 1 }
if (n > 0) {
r = r * n
n -= 1
} // 2.3 块表达式和赋值
// 在scalak ,{}块包含一系列表达式,其结果也是一个表达式。块中最后一个表达式的值就是块的值
// 这个特性对于那种对某个val的初始化需要分多步完成的情况很有用
import scala.math.sqrt
val distance = { val dx = x - 1; val dy = x - 2;sqrt(dx * dx + dy * dy) } // 2.4 输入和输出
print("Answer: ") // 不换行
println(22) // 换行
println("Answer: "+ 22)
printf("Hello,%s! You are %d years old.\n","CC",1) // 格式化打印
val name = readLine("Your name: ")
print("Your age: ")
val age = readInt()
printf("Hello, %s! Next year, your will be %d.\n",name, age + 1) // 循环
while (n > 0) {
r = r * n
n -= 1
}
var result1 = 1
for ( i <- 1 to 22) {
result1 = result1 * i
}
val str1 = "Hello "
var sum = 0
for (i <- 0 until str1.length){
sum += str1(i)
}
var sum1 = 0
for(ch <- "Hello") {sum1 += ch} // 2.6 高级for循环和for推导式
for(i <- 1 to 3; j <- 1 to 3) {print((10 * i + j) + " ")}
for(i <- 1 to 3; j <- 1 to 3 if i != j){print((10 * i + j) + " ")}
for(i <- 1 to 10) yield i % 3 // Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)
for(c <- "Hello"; i <- 0 to 1) yield (c + i).toChar
for(i <- 0 to 1; c <- "Hello") yield (c + i).toChar // 2.7 函数
def abs(x: Double) = if(x >= 0) x else -x
def fac(n: Int) = {
var r = 1
for (i <- 1 to n) {
r = r * i
}
r
}
spark_20180328的更多相关文章
随机推荐
- BZOJ2548:[CTSC2002]灭鼠行动
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- asp.net异常处理和错误页配置
最近做一个项目,直接拷贝了前辈写的程序,结果报错了查了半天都没查出原因,也看不出哪里报错,最后发现有一个错误被try...catch了,所以我们做项目的时候一般不需要try...catch. 假设所有 ...
- AI-Info-Micron-Menu:About Micron
ylbtech-AI-Info-Micron-Menu:About Micron 将数据带入生活 美光科技的存储技术帮助将海量数据化为宝贵见解,重新定义世界使用信息的方式. 1.返回顶部 1. 公司简 ...
- ES6学习之Generator函数
概念:可以把Generator 函数理解成状态机(封装了多个内部状态)或者是一个遍历器对象生成函数 写法:Generator函数的定义跟普通函数差不多,只是在function关键字后面加了一个星号 f ...
- numpy和matlab计算协方差矩阵的不同(matlab是标准的,numpy相当于转置后计算)
matlab是标准的,numpy相当于转置后计算 >> x = [2,0,-1.4;2.2,0.2,-1.5;2.4,0.1,-1;1.9,0,-1.2] x = 2.0000 0 ...
- 开启struts2自带的开发模式常量
在以前的开发中,当修改一些配置时总是不能及时地更新到服务器,我们总会重新部署或重启来更新改变的内容,在struts2中可以通过一个常量来达到此目的.即在struts.xml中的<struts&g ...
- 代码,用c++实现线性链表
#include <iostream> #include <stdio.h> #include <malloc.h> using namespace std; #d ...
- ajax的回调函数和匿名函数
1.什么是js回调函数 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为函数实际上 ...
- JavaScript中创建对象的三种模式
JS中,便于批量创建对象的三种模式: 1.工厂模式:用一个函数封装创建对象的细节,传入必要的参数,在函数内部new一个对象并返回. 缺点:创建的对象无法识别类型(全是Object) 2.构造函数模式: ...
- Web 应用之数据库的配置 与链接 Mysql
source 绝对路径.sql(绝对路径是对应数据库版本包下的) source时是有先后顺序的必须是create 在insert 在 下面是链接,上面是把数据导入到数据库中,数据也可以自己写进去. 配 ...