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进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ... 
随机推荐
- 20155326 2017-2018-1 《信息安全系统设计基础》第2周学习及课堂总结myod
			20155326 2017-2018-1 <信息安全系统设计基础>第1次学习及课堂总结myod 虚拟机之前出了一些问题,然后我重新弄了一个新的虚拟机. 先在虚拟机里面安装了git. 安完以 ... 
- java基础-day10
			第10天 IO 今日内容介绍 u IO流概述及FileWriter类使用 u FileReader类使用 u 缓冲流介绍和使用 u IO流相关案例 第1章 IO流概述及FileWriter类使用 ... 
- hdu 4920
			http://acm.hdu.edu.cn/showproblem.php?pid=4920 给定两个n阶矩阵,求矩阵相乘后模3. 直接搞肯定会超时 特殊处理1和2的情况 实际上是水过的..... 貌 ... 
- [ 9.9 ]CF每日一题系列—— 259A黑白棋盘检查问题
			http://codeforces.com/problemset/problem/259/A PS9.8日做了但是忘了发博客,所以坚持3天了呦~ 终于读懂了这个题了,心累 Describe: 给你8 ... 
- hdu5016
			题意:给定一个n个点的图,这个图是一棵树,然后有些点建立了集市.并且没有集市的地方去集市一定是去最近的,如果距离相同,那么则去标号最小的..现在你还能在建一个集市,问建完这个集市最多有多少个点来这里. ... 
- Git和SourceTree配合使用
			Git介绍 git是当今最强大的本地的分布式代码版本管理工具. git的核心概念与操作:开发环境,本地仓库,远程仓库.他们的关系如下图: 与CVS及SVN的比较: CVS及SVN都是集中式的版本控制系 ... 
- cxGrid之checkbox小结
			http://www.cnblogs.com/Kim53622744/p/4428997.html 在cxgrid中增加选择列 1.在dataset(query/table/clientdataset ... 
- DELPHI获取宽带IP
			DELPHI获取宽带IP DELPHI获取宽带IP procedure TForm1.Button1Click(Sender: TObject);varurl: string;beginurl : ... 
- 集成算法(chapter 7 - Hands on machine learning with scikit learn and tensorflow)
			Voting classifier 多种分类器分别训练,然后分别对输入(新数据)预测/分类,各个分类器的结果视为投票,投出最终结果: 训练: 投票: 为什么三个臭皮匠顶一个诸葛亮.通过大数定律直观地解 ... 
- ServiceStack DateTime数据类型转Json出现的困扰
			执行dotnet-new selfhost sstest 创建项目,然后打开解决方案 修改ssTest.ServiceModel中的Hello.cs,在HellopResponse中添加时间属性,然后 ... 
