码迷,mamicode.com
首页 > 其他好文 > 详细

Scala基础语法

时间:2015-08-01 12:47:27      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

 

声明变量

技术分享val表示常量
技术分享var表示变量
技术分享无论是谁,必须初始化
技术分享书写变量时,名称在前,类型在后
 
 
输入输出语句
技术分享print、println、printf
技术分享readLine
 
 
常用类型
技术分享Byte、Char、Short、Int、Long、Float、Double、Boolean
技术分享没有小写的,只有大写的
技术分享没有基本类型,全是类
技术分享他们的父类是Any,空类型使用()即Unit
 
 
运算符的使用方法
 
技术分享运算符,本质上是方法
技术分享1+2 实际是1.+(2)
技术分享1 to 10 实际是1.to(10)
 
 
返回值
技术分享语句中默认不需要写return,最后一行默认返回
技术分享但是赋值语句没有返回值
技术分享没有返回值使用Unit表示
 
条件表达式
技术分享if (1>0) 1 else 0
技术分享if (1>0) 1 else ()
 
 
for循环
 
技术分享for(i <- 1 to 10) println(i)
技术分享for(i <- 1 until 10) println(i)
技术分享for(i <- Array("hello","you")) println(i)
技术分享多重for(i<-1 to 3;j<-1 to 3) println(i*10+j)
技术分享推导式  for(i <- 1 to 10) yield i*2
技术分享守卫 for(i <- 1 to 10 if i%2==0) yield i*2
技术分享
 
 
 
 
 
 
 
 
 
 
函数
技术分享def func(...) = ...
技术分享递归函数必须有返回值类型
技术分享调用时,如果无参,可以不写括号
技术分享形参有默认值
技术分享有名形参
技术分享形参是变长数组
技术分享
技术分享过程 def func(...)... 表示无返回值
 
数组
 
 
技术分享数组是定长的,相同类型的
技术分享定义:new Array[Int](2) 和 Array(1,2)
技术分享访问arr(0)      赋值arr(0)=100
技术分享算法: arr.sum
技术分享输出:arr.mkString(" and ")
技术分享
 
 技术分享
 
可变数组
技术分享import scala.collection.mutable.ArrayBuffer

   ArrayBuffer[Int]()或ArrayBuffer[Int]

技术分享ab+=1
技术分享ab+=(1,1,1)
技术分享ab++=Array(1,1,1)
技术分享ab.insert(2,6)
技术分享ab.remove(index,length)
技术分享ab.toArray
 
 
映射
技术分享Map中对偶的类型是相同的
技术分享Map("k1"->1,"k2"->2)
技术分享Map(("k1",1),("k2",2))
技术分享m.getOrElse("b",0)
技术分享m("a")=10
技术分享m += ("k3"->3)
技术分享m -= "k3"
技术分享for((k,v)<-m)...
技术分享
技术分享import scala.collection.mutable.Map
 
 
元组
技术分享元组中元素类型可以不同
技术分享(1,"A")
技术分享取值 a._1
技术分享拉链 "hello".zip("world")
 
 
技术分享class Person { var age = 0}

生成私有字段age、读方法age()和写方法age_=(...)

技术分享可以实现只有读方法没有写方法
技术分享不能实现只有写方法没有读方法
技术分享
技术分享如果需要和java互相调用,必须生成真正的getter和setter方法

   calss Person{@BeanProperty var age=0}

技术分享
 
 
 
类的主构造器
技术分享与类定义交织在一起,

class Person(var name:String = "a", var age:Int = 1){

    println("i was created")

     def desc()= name+","+age

    println(this.desc)

}

技术分享主构造器中的语句会在实例化时执行
技术分享实例化时参数不能少,除非有默认值
 
 
 
类的辅助构造器
技术分享辅助构造器的名称是this

class Person {

 var age=0

 def this(age:Int){

  this()  //调用主构造器

  this.age = age

 }

}

 

技术分享调用 new Person(12) 或者 new Person
 
 
 
 
 

Scala基础语法

标签:

原文地址:http://www.cnblogs.com/thinkpad/p/4693926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!