scala学习笔记


变量

关键字 val---不可变(重新赋值会报错) var---可变


  1. var,可以重复定义相同变量,但是变量不能切换类型;



函数:

scala的函数定义比较奇怪,下图可以很好标示它的格式,这个是标准格式,在实际使用时可以适当调整(省去返回类型,省去返回关键字return..)


入门样例:

object HelloWord {
  def main(args: Array[String]) {
    print("Hello World")
  }

  def printSon() : Unit = {
    println("I Love Scala")
  }
}


数据类型

基础数据类型:Byte Short Int Long Char String Float Double Boolean
  • scala的基本数据类型和java基本一样,区别是首字母要大写
基本类型之间的操作:scala中的操作都是对象方法,比如 2+1==》2.+(1) (语法糖无处不在啊)
算数操作(+-*/ %)、关系运算、逻辑运算、位运算、


控制结构

if、while、do while 、for

if("hello"=="hell")  1 else 0
def gcdLoop(x: Long, y: Long): Long = {
        var a = x
        var b = y
        while (a != 0) {
            val temp = a
            a = b % a
            b = temp
        } 
        b
}

var line = ""
do {
    line = readLine()
    println("Read: "+ line)
} while (line != "")

scala> val filesHere = (new java.io.File(".")).listFiles
//集合操作方式
scala> for (file <- filesHere)
     | println(file)

//间接调用方式(不常用)
for (i <- 0 to filesHere.length - 1)
println(filesHere(i))

for 比较特殊  <- 标示生成器, 将集合中的元素依次赋值给循环变量,  1 to 5可以生成 1 2 3 4 5 ; 1 until 5 生成 1 2 3 4

数据结构

数据结构是跨语言的,scala也不例外;
数组(Array ArrayBuffer)、列表(List)、集合(Set)、Map、元组(不同类型的变量集合)、队列(Queue)、栈(Stack)
特殊的类型是None Some Option;前两者都是Option的子集

数组:
创建(定长数组两种创建方式、变长数组一种创建方式)

scala> val strArray2=Array("First","Second")

strArray2: Array[String] = Array(First, Second)


scala> val numberArray=new Array[Int](10)

numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)


scala> import scala.collection.mutable.ArrayBuffer

import scala.collection.mutable.ArrayBuffer


scala> val strArrayVar=ArrayBuffer[String]()

strArrayVar: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer()



追加:
+= ++= 都可实现
删除:trimEnd(n)  ---删除末尾n个元素
插值:insert(n,  x1, x2, x3) ---这个比较变态,一次可以在n位置处插入这么多
toArray和toBuffer可以把定长非定长换着玩~
查询:(i)即可,轮询的话使用for循环

还有 scala加入了  min max sum toString mkString等方法


List
创建:List("jin", "killer")
查询:list(i)
插值:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值