一, 基本数据类型

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-分支循环的更多相关文章

  1. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  2. JS 01 变量_数据类型_分支循环_数组

    点击直通车↓↓↓ 数据类型及数据类型的手动转换 数组 一.概念 JavaScript(JS)是一种基于对象和事件驱动.且可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执 ...

  3. 第十九节:Java基本数据类型,循环结构与分支循环

    基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型. 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 ...

  4. day2学python 数据类型+深浅拷贝+循环

    数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3) ...

  5. java基础二 分支循环

    分支循环:    if...    if...else...    if...else if...    if...else if...else...    switch...case...defau ...

  6. C#数据类型-string

    string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring.Split).蹂躏(Join)... 而现在C#数据类型string要“翻身闹革命”了,它几乎无 ...

  7. python_分支循环

    什么是分支+循环? --不同条件进行不同逻辑处理            -- 分支 --满足条件进行反复相同逻辑处理     -- 循环 分支的形式? -- if 条件:  执行体   else: 执 ...

  8. 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告

    一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...

  9. JS基础_数据类型-String类型

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. Vue 分支循环

    分支循环 在Vue中,分支循环也是使用标签属性指令完成的,这一点与后端模板语法不太相同. v-for 下面是通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...

随机推荐

  1. VS2008 + QGIS1.7.1试验

    今天试验了一下.结果算是成功了吧.显示Generate done,生成了.但是提示了一个“SVN version不明确”的错误提示,应该无大碍吧.但是打开Build成的.sln也没看出有啥不妥. 用C ...

  2. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  3. 第一次Java实验

      模仿JavaAppArguments.java实例,编写一个程序,此程序从命令行接受多个数字,求和之后输出. 1.设计思路:命令行参数都是字符串,必须将其转化成数字才能相加,定义一个数组接收字符串 ...

  4. 《mysql必知必会》学习_第六章_20180730_欢

    第六章<过滤数据> P35 1. select prod_name,prod_price from products where prod_price=2.5; 2.select prod ...

  5. 声笔飞码GB2312单字效率分析

    -----------------------声笔飞码强字方式单字效率分析-------------------------- 2   keys: 567       items, 381900209 ...

  6. less(css)语言快速入门

    转载 原文地址:https://www.ibm.com/developerworks/cn/web/1207_zhaoch_lesscss/ 简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 ...

  7. Oracle.ManagedDataAccess.Client.OracleException:“ORA-00936: 缺失表达式”

    static void Main(string[] args) { string sql = "insert into StudentC(Stuid, Stuname, Stupass) v ...

  8. Redis常见使用说明

    1 概述Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写. ...

  9. PowerDesigner的Name和Code不同步设置

    1.“Tools”->"GeneralOptions"(最下方) 2.“Dialog”(左侧列表选第2个) 3.“Name to Code mirroring”的勾去掉

  10. openvSwitch tunnel

    ovs tunnel 实验拓扑 实验拓扑搭建基础脚本 #vbox虚拟机1 ip netns add left ip link add name veth1 type veth peer name sw ...