Kotlin开发Android(2): Kotlin声明变量常量方法等基本语法


首先上个类,一些变量,常量,方法的声明等,让大家粗略地了解Kotlin:

class Kotlin {
	private var mContext : Context ?= null
	//构造函数:也可以直接添加主构造方法 class Kotlin ( private val mContext : Context ){   
	constructor (mContext : Context) {
		this.mContext = mContext
	}
	//声明变量 var ,默认是public
	var str : String ?= null
	//声明常量 val
	val finalStr = "String"
	//普通方法:参数 ( str : String )  返回值  在参数后  : String,如果在非静态方法(封闭方法)中调用本类的变量或者常量如 this.str时
	//返回值为 String? 返回值后加 ? 表示返回值可以为null ,? 表示不确定变量可以为null
	private fun setString ( str : String ) : String {
		//Kotlin中判断String也是用==
		if ( str == "" ) {
			//相当于 for( int i = 0 ; i < 10 ; i++) 
			for ( i in 0..9 ) {
				//while ,do while 循环不变,只是没有 ; 结尾
				while ( true ) {
					do {
					} while ()
				}
			}
			//类型转换:两种...
			val doubleVal = 1.0
			val intVal = doubleVal.toInt() 
			
			val view = View( mContext )
			val textView = view as TextView
		}
		return str
	}
	//抽象方法
	internal abstract  fun abstractStr ()
	//静态变量,常量,方法 等 写在companion object 中,此object属于kotlin,Kotlin当中也有@JvmStatic关键字表示静态,使用场景不同

	companion object  {
		var staticStr : String ?= null 
		fun toString () : String {
		}
	}
}

上面的是Kotlin部分语法的简单版本,其他基本语法及详解:

(1)语句:

1.in 关键字

//如果存在于区间(1,Y-1),则打印OK
if (i in 1..y-1) 
  print("OK")

//如果x不存在于array中,则输出Out
if (i !in 0..array.lastIndex) 
  print("Out")

//打印1到9
for (i in 1..9) 
  print(x)

//遍历集合(类似于Java中的for(String name : names))
for (str in strs)
  println(name)

//如果names集合中包含text对象则打印yes
if (text in names)
  print("yes")

2.when表达式:相当于Java的switch,其强大在于可以判断数据类型并转换为响应的匹配值

when (obj) {
    1       -> print("数字一")
    "hello" -> print("hello")
    in 1..10 -> print("我在1-10之间")
    is Long -> print("long 类型")
    !is String -> print("不是String类型,夭寿啦...")
    else    -> print("else相当于于Java中的default,其余的输出走你")
  }
3.is 关键字:判断一个类的实例,相当于Java中的instanceof
if(obj is String){
   println("这是一个String类型")
}
if(obj !is int){
   println("居然不是int类型,夭寿啦")
}

3.智能类型推测:其中Any相当于Java中的Object
fun judgeType(obj: Any): Int? {
  if (obj is String) {
    // is关键字...做过类型判断以后,obj会被系统自动转换为String类型
    return obj.length 
  }
}
4.空值检测:Kotlin空值检测,参数值后加 ? ,或者在调用一个变量时 !!. 来空值检测,.  之前加 !!  

//当data不为空的时候,执行语句块,如果为空则不执行
data?.let{
    //......
}

5.函数:函数默认参数、变参函数、拓展函数、将函数作为参数

//函数的默认参数
fun default(firstName: String = "Lucio",
        lastName: String = "Liu"){
     //......
}
//变参函数
fun paramsFun(vararg strArray: String?){
       //......
}
//拓展函数:例如可以给BaseAcitivity添加一个Toast的方法
fun Activity.show(msg: CharSequence, 
                duration: Int = Toast.LENGTH_SHORT) {
    Toast.makeText(this, message, duration).show()
}
//将函数作为参数:在Kotlin中可以将一个函数作为参数传递给另一个函数 
fun funTest(test: Test, body: () -> T ) : T {
        lock.lock()
        try {
            return body()
        }
        finally {
            lock.unlock()
        }
}


你可能感兴趣的:(Kotlin)