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. datetime24小时格式和12小时格式

    12:DateTime.Now.ToString("hh:mm:ss") 24:DateTime.Now.ToString("HH:mm:ss")

  2. 转:log4net使用详解

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...

  3. 向Sql Server数据库插入中文时显示乱码的解决办法 (转)

    转自:http://blog.csdn.net/wizardlun/article/details/4577658 參考:http://shareideas.blog.51cto.com/362642 ...

  4. 虚拟机克隆linux centos 6.5 系统网卡配置

    作为一个刚刚接触linux系统的小白来说,VMware虚拟机安装好CentOS6.5系统后,纯净的系统多克隆几份出来方便后期做试验.克隆步骤很简单,克隆后出现的问题是克隆后的网卡MAC地址和原系统MA ...

  5. win10连接外接鼠标怎么禁用触摸板

    Win10笔记本如何禁用触摸板呢?Win10笔记本如何设置“插入鼠标自动禁止触摸板功能”呢?虽然笔记本触摸板在一定程度上可以方便我们的 操作,但是在以鼠标和键盘做为重要的输入设备的情况下,笔记本触摸板 ...

  6. MYSQL导入csv类型的数据出现The MySQL server is running with the --secure-file-priv option

    今天尝试使用 into outfile导出数据的时候出现错误: The MySQL server is running with the --secure-file-priv option so it ...

  7. jquery ajax 设置请求头header 参数

    $.ajax( { url:'http://127.0.0.1:30080/api-a/quasiCustom/selectCustomList', type:'post', dateType:'js ...

  8. Windows Server 2008远程桌面端口更改方法

    win2008远程桌面端口默认是用的是3389端口,但是由于安全考虑,经常我们安装好系统后一般都会考虑把原来的3389端口更改为另外的端口.本文以改为端口为25608商品为例,讲解一下具体操作过程. ...

  9. 用python实现MRO算法

    引子: 如图反映了python3中,几个类的继承关系和查找顺序.对于类A,其查找顺序为:A,B,E,C,F,D,G,(Object),这并不是一个简单的深度优先或广度优先的规律.那么这个顺序到底是如何 ...

  10. python第三十一课--递归(3.递归的弊端)

    演示递归的弊端: def mySum(num): if num == 1: return 1 return num+mySum(num-1) mySum(998) [注意]:递归可以解决绝大多数循环能 ...