kotlin的基础语法


  1.定义包名:与java定义包名一样,在源文件的开头定义包名:

 package my.demo

 import java.util.*

2.定义函数:与java定义函数的区别在于:kotlin在定义函数的时候要加个fun关键词,函数的返回值前后不同,java的在前面,kotlin的在后面

 java:    private int getResult(int a,int b){

 return a+b;

}

 kotlin:  private getResult(a:Int,b:int):Int{

 return a+b

}

如果一个函数只有一个并且是表达式函数体并且是返回类型自动推断的话,可以直接这样写:

 fun getResult(a:Int,b:Int) = a+b  //这里的函数没有写返回值,以为kotlin会自动判断返回值类型

如果函数返回一个无意义的值,相当于Java的void,则可以这样写:

 fun getResult(a:Int,b:Int):Unit{

  print(a+b)

}

Unit 的返回类型可以省略

 定义局部变量:kotlin声明变量与java声明变量不一样,java变量类型在前,变量名在后,而kotlin则相反,变量名在前,变量类型在后,中间加冒号,并且kotlin可以自动判断变量的类型

声明局部变量(常量使用val关键字)

val a:Int =1

val b = 1  // 自动判断Int类型

声明变量 (变量使用var关键字)

var x = 5 //自动推断出是int类型

3.kotlin的注释与java一样,支持单行注释和块注释

// 单行注释

/* 这是一个
   块注释 */
使用字符串模板:使用${变量},如变量为args:Array<String>,使用的时候可以这样写

 fun main(args:Array<String>){

if(args.size == 0)return

print("First argument:${args[0]}")

}

而不用在去加号加起来,gradle里面也是支持的

fun main(args:Array<String>)

{

  if(args.size == 0) return

print("First argument:"+arg[0])

}


使用if表达式的时候这样写:

fun max(a:Int,b:Int):Int{

if(a>b){

return a

}else{

return b

}

}

如果一个函数只有一个并且是表达式函数体并且是返回类型自动判断的话,可以这样写:

fun getResult(a:Int,b:Int) = a+b

那么加上if表达式的话,可以这样写:

fun max(a:Int ,b:Int )=if(a>b) a else b


4:使用可空变量和空置检查

当一个变量,函数可能出现空值得时候,应该指出该引用可空,如:

fun getResult(a:Int, b:Int):Int?{// 设置函数返回类型可空

print(a + b)

return null


}

使用类型检查和自动转换

is运算符是检查一个表达式是否是某个类型的实例,如果为不可变局部变量或属性进行类型检查,则无需显式转换

fun getStringLength(obj:Any):Int?{

if( obj is String){

// 'obj'在这个分支中自动转换为String类型

  return obj.lenth

}

//'obj'任然是‘Any’类型

return null

}

或者


fun getStringLength(obj:Any):Int? {

if(obj !is String ) return null

// 'obj'在这个分支中自动转换为String类型

  return obj.lenth


}

也可以这样

fun getStringLength(obj:Any):Int?{

if( obj is String && obj.length >0){

return obj.length

}

return null

}

5.使用for循环

fun main(args :Array<String>){

for( arg in args){

 print(arg)

// in操作符可以判断是否arg是否在args里面

}

}

或者这样写

for ( i in arg.indices){

print(args[i])

}


6:使用while循环

fun main (args:Array<String>){

var i = 0

while (i < args.size){

print(args[i++])

}

}

7: 使用when表达式:

when表达式就相当于java的switch表达式

fun cases (obj:Any){

  when (obj){

  1          ->print("one") //如果obj的值为1

“hello”->print("Greeting")// 如果obj的值为hello

 else   ---> print("Unknown")// 默认,相当于switch 的default

}

}

8:使用ranges

使用in运算符检查数字是否在范围内

if(x in 1..y-1){//1..y-1表示1到y-1的范围

print("OK")

}

 
 
for (i in 1 until 100) { ... } // 半开范围,不包括100,相当于[1,100) for (x in 2.. 10 step 2) { ... } // 每次夸2,内容为2,4,6,8,10 for (x in 10 downTo 1) { ... } // 返序 if (x in 1.. 10) { ... }

 使用!in 运算符检查数值是否在范围外

if(x!in 0..array.lastIndex){

print("Out")

}

8:使用集合:

循环输出一个集合里面的值或者判断集合里面是否包含某个变量

for(name in names){//将会调用names.contains(name)方法

   println(name)

}

使用lambda表达式过滤和映射集合


 
 
// it表示name names .filter { it.startsWith( "A") } .sortedBy { it } .map { it.toUpperCase() } .forEach { print(it) }












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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值