scala学习笔记

xiaoxiao2021-02-28  86

变量

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

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) 插值:
转载请注明原文地址: https://www.6miu.com/read-79134.html

最新回复(0)