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基础(上)的更多相关文章

  1. Scala学习(一)--Scala基础学习

    Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...

  2. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

  3. Scala学习(六)---Scala对象

    Scala中的对象 摘要: 在本篇中,你将会学到何时使用Scala的object语法结构.在你需要某个类的单个实例时,或者想为其他值或函数找一个可以挂靠的地方时,你就会用到它.本篇的要点包括: 1. ...

  4. [Scala]Scala学习笔记一 基础

    1. 变量 val定义的值实际上是一个常亮,无法改变其内容 scala> val num = 0 num: Int = 0 scala> num = 2 <console>:1 ...

  5. Scala学习之路----基础入门

    一.Scala解释器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环) scala解释器也被称为REPL,会快速编译s ...

  6. Scala学习(五)---Scala中的类

    Scala中的类 摘要: 在本篇中,你将会学习如何用Scala实现类.如果你了解Java或C++中的类,你不会觉得这有多难,并且你会很享受Scala更加精简的表示法带来的便利.本篇的要点包括: 1. ...

  7. Scala学习——Brief Scala Tutorial

    因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...

  8. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  9. Scala学习(八)---Scala继承

    Scala继承 摘要: 在本篇中,你将了解到Scala的继承与Java和C++最显著的不同.要点包括: 1. extends.final关键字和Java中相同 2. 重写方法时必须用override ...

  10. Scala学习随笔——Scala起步

    实验楼学习Scala语言的笔记,课程网址为https://www.shiyanlou.com/courses/490 一.Scala简介 Scala 是一门多范式的编程语言,类似于 Java .设计初 ...

随机推荐

  1. gulp学习。

    安装gulp 安装gulp之前必须先安装node.js,然后在命令行里输入 $ npm install gulp-cli -g (-g 表示全局安装)然后在输入$ gulp -v ,验证,安装完成后再 ...

  2. python之绘制图形库turtle

    关于绘制图形库turtle# 画布上,默认有一个坐标原点为画布中心的坐标轴(0,0),默认"standard"模式坐标原点上有一只面朝x轴正方向小乌龟 一:海龟箭头Turtle相关 ...

  3. 在Word2007,2010,2016中分栏但不换页的方法

    解决方法: word2007:界面左上角的按钮->选择word选项->依次点击“高级”->“版式选项”->点开加号,“按word6.x/95/97的方式排放脚注”. Word2 ...

  4. 【Ansible 文档】【译文】模式

    Patterns 模式 Ansible中的模式是指我们如何决定那些机器执行管理操作.这里意味着与那些主机通信,但是对于playbook,它是指哪些主机应用特定的配置或执行特定程序. 我们将重温一下In ...

  5. Vuex数据页面刷新丢失问题解决方案

    用Vue做项目开发很久了,对于vuex能用.会用,但是因为状态脱离页面和刷新丢失两个原因,一直都有种抵触,特别是一些简单的数据都是通过query或者本地存储就解决了,然而对于一些复杂内容,不可避免的还 ...

  6. 2-7 R语言基础 数据框

    #数据框 > df <- data.frame(id=c(1,2,3,4),name=c("a","b","c","d ...

  7. 使用mysql乐观锁解决并发问题思路

    本文摘自网络,仅供个人学习之用 案例说明: 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后 ...

  8. unlimited 控制

  9. SpringMVC之ajax+select下拉框交互常用方式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Ant在MyEclipse中的配置总结

    1.在配置Ant之前,先要配置好JDK的JAVA_HOME和path:之后下载解压apache-ant-1.7.1;并配置环境变量ANT_HOME(安装目录,后不可以加分号:)及其path(安装目录/ ...