scala学习——(1)scala基础(上)
scala> val x = 1 x: Int = 1
一、值与变量
- 值(val):赋值后不可变
val值名称:类型 = XXX
- 变量(var):赋值后可以改变
var变量名称:类型 = XXX
scala> val x : Int = 1
x: Int = 1
scala> x = 2
<console>:12: error: reassignment to val
x = 2
^
scala> var x : Int = 1
x: Int = 1
scala> x = 2
x: Int = 2
scala> val x = 1
x: Int = 1
scala> var x = 1
x: Int = 1
二、常用的类型:
- Byte
- char
- Short
- Int
- Long
- Float
- Double
- Booleal
并无基本类型与包装类型之分
三、方法定义
def 方法名(参数名:参数类型):返回类型={
//block内最后一行为返回值
}
注:当返回值为unit时,可以定义为:
def 方法名(参数名:参数类型){
}
package week1 /**
*Create by wucy on 2017/2/8
*/ object WeekOne{
def add(x:Int,y:Int): Int = {
x+y
} def add() = {
println("say hello")
} def main(args:Array[String]){
println(add(1,2))
add()
}
}
方法的注意:
- 没有参数的方法可以不带圆括号访问
- Scala没有静态方法,通过object来实现
scala> 1.to(10)
res0: scala.collection.immutable.Range.Inclusive = Range 1 to 10 scala> 1 to 10
res1: scala.collection.immutable.Range.Inclusive = Range 1 to 10
- 条件表达式(if)
- 循环表达式(for,while,to,until,Range没有coninue与break)
- 语句终止(分行写时可以不用分号)
scala> if (x>0) 1 else -1
res2: Int = 1 scala> val a = if(x>0) 1 else -1
a: Int = 1
scala> 1 to 10
res3: scala.collection.immutable.Range.Inclusive = Range 1 to 10 scala> 1 until 10
res4: scala.collection.immutable.Range = Range 1 until 10
scala> Range(1,10)
res5: scala.collection.immutable.Range = Range 1 until 10 scala> Range(1,10,2)
res6: scala.collection.immutable.Range = inexact Range 1 until 10 by 2
def main(args:Array[String]){
//println(add(1,2))
//add()
for (i<- 1 to 10){
println(i)
}
}
scala> for( i<- 1 until 10) println(i)
1
2
3
4
5
6
7
8
9
scala> for( i<- 1 until 10 if i % 2 ==0 ) println(i)
2
4
6
8
- Lazy value(懒加载)
lazy val val_name = val_value
用到时才会去初始化
scala> val a = 1
a: Int = 1 scala> lazy val a = 1
a: Int = <lazy> scala> a
res9: Int = 1
- 默认参数
- 带名参数(赋值顺序可以定义时顺序不一致)
- 边长参数(:_*)
四、异常处理

资料来源:小象学院 陈 超 仅供学习研究
scala学习——(1)scala基础(上)的更多相关文章
- Scala学习(一)--Scala基础学习
Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...
- Scala学习笔记--正则表达式基础知识、如何在scala内使用
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...
- Scala学习(六)---Scala对象
Scala中的对象 摘要: 在本篇中,你将会学到何时使用Scala的object语法结构.在你需要某个类的单个实例时,或者想为其他值或函数找一个可以挂靠的地方时,你就会用到它.本篇的要点包括: 1. ...
- [Scala]Scala学习笔记一 基础
1. 变量 val定义的值实际上是一个常亮,无法改变其内容 scala> val num = 0 num: Int = 0 scala> num = 2 <console>:1 ...
- Scala学习之路----基础入门
一.Scala解释器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环) scala解释器也被称为REPL,会快速编译s ...
- Scala学习(五)---Scala中的类
Scala中的类 摘要: 在本篇中,你将会学习如何用Scala实现类.如果你了解Java或C++中的类,你不会觉得这有多难,并且你会很享受Scala更加精简的表示法带来的便利.本篇的要点包括: 1. ...
- Scala学习——Brief Scala Tutorial
因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...
- Scala学习1————scala开发环境搭建(windows 10)
Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...
- Scala学习(八)---Scala继承
Scala继承 摘要: 在本篇中,你将了解到Scala的继承与Java和C++最显著的不同.要点包括: 1. extends.final关键字和Java中相同 2. 重写方法时必须用override ...
- Scala学习随笔——Scala起步
实验楼学习Scala语言的笔记,课程网址为https://www.shiyanlou.com/courses/490 一.Scala简介 Scala 是一门多范式的编程语言,类似于 Java .设计初 ...
随机推荐
- Mongodb Windows 集群
我在一台Windows机器下搭建了一个 Replica Sets + Sharding 测试集群环境,以此作为我后续对于Mongodb更进一步学习的实验平台. 只有一台windows机器,配置方案:1 ...
- 在 Azure 中创建通用 VM 的托管映像
可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...
- svn Please execute the 'Cleanup' command. 问题解决
1由于使用svn 更新文件出错,导致svn中断,然后就一直循环出现 ‘’Please execute the 'Cleanup' command‘’ 问题: 查找网上方案 . 有使用sqlite3 ...
- 获取本机正在使用的ipv4地址(访问互联网的IP)
[转]原文地址:http://www.cnblogs.com/lijianda/p/6604651.html 1.一个电脑有多个网卡,有线的.无线的.还有vmare虚拟的两个网卡.2.就算只有一个网卡 ...
- [MySQL复制] SQL_ERROR 1032解决办法(non-gtid env)
一.缘由: 在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据. 由于异步和网络延时,B的更新event先到达A端执行,造成A端找不到 ...
- python基础学习15----异常处理
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件). 1.异常的类型 异常的类型多种多样,常见的异常有: AttributeE ...
- VS 0x80041FEB
在打开from设计界面时,报错. 解决方法:将项目中Properties文件中licenses.licx删除,重新建立一个空的licenses.licx文件放到项目中. 重新打开界面,解决
- SDN2017 第二次实验作业
安装floodlight 参考链接:http://www.sdnlab.com/19189.html 从github下载源码,并编译安装 $ sudo apt-get install build-es ...
- SDN 第五次上机作业
1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 s1: s2: s3: s4: 3.抓包分析验证负载均衡 s4-eth1: s4-eth2: s4-eth3
- Alpha冲刺报告(2/12)(麻瓜制造者)
今日任务总结 燃尽图如下: 具体完成情况如下: 江郑: 今天:完成了商品需求的数据库的基本构建. 遇到的问题:对于php的ci框架不熟,操作原理不懂 明天:和队友进行数据库的对接 符天愉: 今天:完成 ...