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进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...
随机推荐
- 【转】require.js学习笔记(一)
一.立即执行函数 立即执行函数可以有效避免临时变量污染全局空间.可以在页面初始化时,在立即执行函数内实现一次执行变量的定义及使用. for (var i = 0; i < elems.lengt ...
- _编程语言_C++_setw()
C++ 中使用setw(int n) 来控制输出间隔. 例如: cout<<)<<'a'<<endl;//s与a之间有7个空格,setw()只对后面紧跟的输出产生作 ...
- noip第20课作业
1. 评学习小标兵 [问题描述] 东东所在的班级有 N 名同学,期末考试进行了数学.语文.英语.地理四门功课的测试.班主任要将这 N 名学生中总分前三名定为本学期的“学习小标兵”.现在给出这N 名学生 ...
- 谷歌的java文本差异对比工具
package com.huawei.common.transfertool.utils; /** * @author Paul * @version 0.1 * @date 2018/12/11 * ...
- cocos 2dx 通过循环实现界面图形的摆放
首先创建一个一维数组 this.starSprites = new Array(); 然后知道星星的间距和坐标后通过如下代码实现位置的摆放 for(var i = 0; i < 6; i++){ ...
- Android-Lock-多线程通讯(生产者 消费者)&等待唤醒机制
此篇博客以 生产面包
- 如何把jar包发布到maven私服
1.格式 mvn deploy:deploy-file -DgroupId=com.qiyi -DartifactId=sphinx -Dversion=1.0 -Dpackaging=jar -Df ...
- WPF 嵌入Winform GDI 、 开启AllowsTransparenc问题
此文章可以解决2至少2个问题: 1.开启AllowsTransparenc造成的GDI+组件不显示问题 2.WPF 组件无法覆盖嵌入WPF窗口的任何第三方GDI+组件上层 方案1:自制双层 原理:用一 ...
- Entity Framework Core 生成跟踪列-阴影属性
摘自:https://www.cnblogs.com/tdfblog/p/entity-framework-core-generate-tracking-columns.html Ef Core 官方 ...
- .net程序和管理员权限的一些事
1.对某个方法设置管理员权限运行(未考证)(假的,必须以管理员权限启动,不然报错) [PrincipalPermission(SecurityAction.Demand, Role = @" ...