scala-02-基本数据类型-string-分支循环
一, 基本数据类型
1, scala的数据类型和java类似, 不同的是scala中所有的类型都是引用类型的
Byte
Short
Int
Long
Char
Float
Double
String
Boolean
Unit 相当于 void, 用作不反回任何结果的
ANY 相当于java object
2, string 处理, 字符串定义
一般使用双引号进行定义, val str = "abc"
如果想保持原样输出, 可以使用 ''' 进行定义
val longStr = ''' type: abc
method: get'''
字符串的格式化输出
// 字符插入器
println(s“$DATE is very nice”) // 使用 s“”,
println(s"${student.name}") // 可以传入任意表达式
println(s" ${1 + 1}") // 任意表达式 // 字符串插入
println(f"$name%s is good boy") // 使用 f“%name%s”
printf("%s is good boy", name") // 使用 printf(“%s”, name)
printf("%4.2f. ", price) // 小数点后保留 2位
3, 变量定义
val: 用于定义常量, 定义后的值不可改变, 必须给初始值
val name : String = “abc”
可以不写变量类型 , 使用自动推断
定义 Unit, 相当于void
val s: Unit = ()
var: 用于定义变量
var num: Int = ‘a’
发生了隐式转换
二, 运算符操作
3, 运算符操作
scala中所有的运算符都以方法的形式被调用, 所有的运算符都可以被重载
var count = a + b
在scala中会被转换成 var count = (a).+(b) 的形式
4, 对象比较
scala中的比较是基于内存比价的, 而java中是基于引用进行比较的
三, 结构控制
1), if
可以返回值, 条件表达式的值返回给变量
val result = if (a > b) else 0
val result = if (a > b) 1 else if (i ==8) i else 0
如果没有任何值返回, 会默认返回 (), 也就是 Unit (AnyVal)
2, while循环
def gcdLoop(x: Long, y: Long): Long = {
var a = x
var b = y
while( a != ) {
val temp = a
a = a * b
b = temp
}
b
}
3, do..while 循环
var line = ""
do {
line = readLine()
println(line)
} while (line != "")
4, 使用if, 代替while循环
减少var变量的定义, 同时程序表达能力更强
def gcdLoop(x: Long, y: Long): Long = if (x = ) x else gcdLoop(y, x * y)
5, for循环使用
先认识下生成器: <-
for (file <- fileSet) println(file)
// 遍历出来的元素
fileSet的值会依次赋值给file, 然后打印出来
for (i <- to )
println( arr(i) ) for (i <- 1 until 6)
println( arr(i) )
"to" 会包含1-5的值, “until” 不包含 5,
嵌套for循环
def for_for = {
for (i <- to ; j <- to ) {
if (j == ) println(i * j)
else print(i * j + " ")
}
}
for循环中可以使用if进行判断
for (file <- fileSet if file.getName.endsWith(".scala") {
println(file)
}
多重嵌套循环
def grep(pattern: String) =
for (
file <- filesHere
if file.getName.endsWith(".scala");
line <- fileLines(file)
if line.trim.matches(pattern)
) println(file +": "+ line.trim)
grep(".*gcd.*")
scala-02-基本数据类型-string-分支循环的更多相关文章
- Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解
一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...
- JS 01 变量_数据类型_分支循环_数组
点击直通车↓↓↓ 数据类型及数据类型的手动转换 数组 一.概念 JavaScript(JS)是一种基于对象和事件驱动.且可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执 ...
- 第十九节:Java基本数据类型,循环结构与分支循环
基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型. 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 ...
- day2学python 数据类型+深浅拷贝+循环
数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3) ...
- java基础二 分支循环
分支循环: if... if...else... if...else if... if...else if...else... switch...case...defau ...
- C#数据类型-string
string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring.Split).蹂躏(Join)... 而现在C#数据类型string要“翻身闹革命”了,它几乎无 ...
- python_分支循环
什么是分支+循环? --不同条件进行不同逻辑处理 -- 分支 --满足条件进行反复相同逻辑处理 -- 循环 分支的形式? -- if 条件: 执行体 else: 执 ...
- 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告
一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...
- JS基础_数据类型-String类型
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Vue 分支循环
分支循环 在Vue中,分支循环也是使用标签属性指令完成的,这一点与后端模板语法不太相同. v-for 下面是通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...
随机推荐
- POJ3273--Monthly Expense(Binary Search)
Description Farmer John is an astounding accounting wizard and has realized he might run out of mone ...
- thrift使用总结
转自 http://blog.csdn.net/qq_27784479/article/details/73250958 Apache Thrift软件框架用于可扩展的跨语言服务开发,简单来说就是RP ...
- 1、从C语言到C++
1.面向对象的C++ c++是在C语言的基础上发展起来的一门语言,C++是即支持结构化程序编程又支持面向对象程序设计的混合型语言.他一方面提供了对C的兼容性,保持了C的简介.高效,接近汇编语言的特点, ...
- 11.DataGrid分页
前台页面: 后台程序:
- hdu 4970 trick
http://acm.hdu.edu.cn/showproblem.php?pid=4970 有n个格子在一条线标号1-n上,可以给范围在l到r内的格子架上攻击力为d的攻击塔,有m个怪物,每个怪物有个 ...
- python编写producer、consumer
自主producer.consumer 首先在不同的终端,分别开启两个consumer,保证groupid一致 ]# python consumer_kafka.py 执行一次producer ]# ...
- iOS 使用代码创建约束,实现自动布局
///与下面约束对象属性截图相对应//使用Auto Layout约束,禁止将Autoresizing Mask转换为约束 [self.funcView setTranslatesAutoresizin ...
- delphi 过滤开头 结尾 全部 空格的函数
function TrimAnsi(const S: AnsiString): Ansistring; var I, L: Integer; begin L := Length(S); I := ; ...
- [NewCoder 3] 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 来分析下,假设在数 ...
- STF环境搭建(ubuntu)
一,环境搭建 1. linux 一些基础的工具要有: sudo apt-get update sudo apt-get install git sudo apt-get install lib32st ...