scala学习笔记

162 阅读2分钟

Scala 访问修饰符基本和Java的一样,分别有:private,protected,public 默认情况下,Scala 对象的访问级别都是 public 在 scala 中,对保护(Protected)成员的访问比 java 更严格一些。因为它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问

作用域保护:

private[x] 或 protected[x]

x指代某个所属的包、类或单例对象 数组:

var z = new Array[String](3)
var z = Array("Runoob", "Baidu", "Google")

合并数组:

var myList1 = Array(1.9, 2.9, 3.4, 3.5)
var myList2 = Array(8.9, 7.9, 0.4, 1.5)
var myList3 =  concat( myList1, myList2)
for ( x <- myList3 ) {
 println( x )
}

// 输出所有数组元素

//创建二维数组

def ofDim[T]( n1: Int, n2: Int ): Array[Array[T]]

//创建三维数组

def ofDim[T]( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]]

list:

val nums: List[Int] = List(1, 2, 3, 4)
// 空列表
val empty = Nil
// 字符串列表
val site = "Runoob" :: ("Google" :: ("Baidu" :: Nil))

// 整型列表 val nums = 1 :: (2 :: (3 :: (4 :: Nil)))

你可以使用 ::: 运算符或 List.:::() 方法或 List.concat() 方法来连接两个或多个列表
//迭代器
 val it = Iterator("Baidu", "Google", "Runoob", "Taobao")
## set
val set = Set(1,2,3)
println(set.exists(_ % 2 == 0)) //true
println(set.drop(1)) //Set(2,3)
import scala.collection.mutable.Set // 可以在任何地方引入 可变集合
使用 ++ 运算符或 Set.++() 方法来连接两个集合
使用 Set.& 方法或 Set.intersect 方法来查看两个集合的交集元素
def &(that: Set[A]): Set[A] 返回两个集合的交集
def &~(that: Set[A]): Set[A] 返回两个集合的差集

正则:
import scala.util.matching.Regex
val pattern = "Scala".r
val str = "Scala is Scalable and cool"
println(pattern findFirstIn str)

val pattern = new Regex("(S|s)cala")  // 首字母可以是大写 S 或小写 s
val str = "Scala is scalable and cool"
println((pattern findAllIn str).mkString(","))   // 使用逗号 , 连接返回结果
println(pattern replaceFirstIn(str, "Java"))

Scala 提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。