Scala 入门1(变量、分支循环、函数)
文章目录
- 1. var 变量,val常量
- 2. 分支、循环
- 3. 函数、方法
- 4. 闭包
学自 https://www.runoob.com/scala/scala-tutorial.html
1. var 变量,val常量
scala 语句 用 ; 或者 \n
分句
object HelloWorld { // 类名跟文件名一致def main(args: Array[String]):Unit = { // Unit 相当于 voidprintln("Hello World!")var myVar : String = "Foo"val myVal : String = "Too"myVar = "hello"// myVal = "world" // val 相当于常量,不能再次赋值val a, b, c = 100 // 不能分别赋值println(a,b,c) //(100,100,100)var pa = (40, "foo")println(pa) // (40,foo)
2. 分支、循环
- 跟 java、 c++ 很像
if(a < 200)println("a < 200")else if(a == 200)println("a == 200")elseprintln("a > 200")var n = 10while(n > 0){println(n)n -= 1}n = -1do{println(n)n -= 1}while(n > 0)for(x <- 1 to 10){println(x) // 包含结束的数}for(x <- 1 to 3; y <- 1 to 3){println(x, y) // 双重循环}var numList = List(100,2,3,4,5)for(a <- numList){println(a)}// 过滤元素for(a <- numList if a < 5; if a != 3){println(a)}// for yield : for 的返回值作为变量存储var returnVal = for{a <- numList if a < 5; if a != 3} yield afor(a <- returnVal)println(a)
- 特有的 break 方式
Breaks.breakable{}
import scala.util.control._val loop = new Breaksloop.breakable{for(a <- numList){println(a)if(a == 3)loop.break}}println("after break")
3. 函数、方法
// val 定义函数, def 定义方法class Test{def method(x:Int) = x + 3 // 多行语句,可用 = {。。。}val func = (x:Int) => x + 3}var obj = new Test()println(obj.method(2)) // 5println(obj.func(2)) // 5// 可变参数def printString(s : String*) = {for(si <- s)println(si)}printString("hello","michael","scala");//指定参数,默认参数def addInt(a:Int, b:Int=2, c:Int=3) : Int = {var sum = 0sum = a+b+cprintln(a,b,c)return sum}println(addInt(1)) // 6// 匿名函数var mul = (x:Int, y:Int) => x*yprintln(mul(3,4))var userDir = () => {System.getProperty("user.dir")}println(userDir())// 偏应用函数是一种表达式,你不需要提供函数需要的所有参数// 只需要提供部分,或不提供所需参数import java.util.Datedef log(date : Date, message : String) = {println(date + "-----" + message)}val date = new Dateval logWithDateBound = log(date, _ : String)logWithDateBound("message1")Thread.sleep(1000)logWithDateBound("message2")Thread.sleep(1000)logWithDateBound("message3")
4. 闭包
// 闭包var factor = 3val multi = (i : Int) => i*factorprintln(multi(5)) // 15factor = 2println(multi(5)) // 10}
}
Scala 入门1(变量、分支循环、函数)相关推荐
- python变量/分支/循环/数组/列表/元组/序列
最近比较流行python,于是我这种从不赶潮流的人也决定跟一把潮流.工作原因学习时间有限,好容易挤着时间看了一部分网上的视频,却被劝说没什么用处,我们就是靠java吃饭的.当然多学一种语言也不会有什么 ...
- C语言入门第二章-分支循环语句
分支循环语句 文章目录 一.语句是什么? 二.分支语句 三.循环语句 四.转向语句 一.什么是语句? 下面介绍的是控制语句:(分号隔开的就是一个语句) 控制语句用于控制程序的执行流程,以实现程序的各种 ...
- Java基础学习笔记(基本规范、变量定义、运算符、分支/循环结构、函数)
文章目录 Java概述与环境搭建 Java历史 Java语言特点 Java执行机制 安装jdk 环境变量配置 乱码问题解决 基本规范 简单Java代码 编译运行 注释 语法规则 变量类型 声明方式 基 ...
- array函数参数 scala_3小时Scala入门
〇,编程环境 1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接. 一,算术运算 二,输入输出 输出:println,print,prin ...
- scala 环境搭建 变量 值 数据类型 元组 表达式块 语句 函数 柯里化 集合 面向对象 隐式转换
scala (scalable的简写) scala是一个比较冷门的语言,不太被人们所知道 为什么这么冷门的语言现在被我们使用 很多的大数据的项目的源码是是用scala语言编写的. 因为大数据技术不断被 ...
- 九阴真经--scala入门+变量+数据类型+运算符
一.入门 Spark由scala编写,为后续学习Spark打基础 scala基于java进行开发,把scala代码编译成class文件,运作在jvm上 scala是一种多范式.支持面向对象和函数式编程 ...
- Scala入门到精通——第十三节 高阶函数
本节主要内容 高阶函数简介 Scala中的常用高阶函数 SAM转换 函数柯里化 部分应用函数 1. 高阶函数简介 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返 ...
- Scala入门到精通——第五节 函数、高阶函数与闭包
本节主要内容 (一)函数字面量(值函数) (二)匿名函数 (三)函数的简化 (四)函数参数 (四)闭包 函数字面量(值函数) 函数字面量(function literal),也称值函数(functio ...
- Scala入门到精通——第五节 函数与闭包
本节主要内容 (一)函数字面量(值函数) (二)匿名函数 (三)函数的简化 (四)函数参数 (四)闭包 函数字面量(值函数) 函数字面量(function literal),也称值函数(functio ...
- scala闭包 变量_Scala闭包,自由和绑定变量,匿名函数
scala闭包 变量 A closure can be defined as the function whose return value depends on the value of one o ...
最新文章
- 2022-2028年中国电容器电子薄膜行业市场研究及前瞻分析报告
- Transformers 研究指南
- 如何入门生信Linux
- Appcan关闭主窗口
- php7.1解压包安装,【Swoole】php7.1安装swoole扩展
- gui窗口遮挡算法_基于 C 语言开发的 GUI 框架
- MySql数据库索引底层数据结构
- SpringBoot自学汇总
- html5背景图片上放按钮,html5自定义video标签的海报与播放按钮
- linux c之用fwrite和fread实现文件的复制
- Oracle数据库基本概念理解(3)
- 职称类计算机论文,计算机类职称论文发表(2)
- Redis工作笔记-Set类型
- proxomitron 个人代理工具
- Spring Boot集成Redis缓存之模拟高并发场景处理
- PyQt5 环境搭建+配置+怎样运行生成的.py程序
- MySQL事务ACID实现原理
- 华为linux配置ip地址命令是什么,华为S5700基础配置命令
- [NOIP2006] 能量项链
- Vue2.0七——生命周期
热门文章
- Python 内置模块之 asyncio(异步iO)
- 五个温度带的分界线_女神建筑师在拿破仑故乡打造的海景别墅,超美!超有温度!【环球设计2225期】...
- Colemak布局的实现 Window+Linux+Android
- Flask 模板 之 变量和过滤器
- 【python】list append()和extend()区别
- QT:QObject 简单介绍
- 华为软件研发面试题1
- python查询斐波那契数列通项公式_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...
- PHP+Ajax点击加载更多列表数据实例
- shell 需要注意的点