Kotlin 基本语法实例详解
基本语法示例
实例代码:
packagecom.stone.basic.syntax
/**
*desc:
*author:stone
*email:aa86799@163.com
*time:27/05/20171101
*/
classBasicSyntax{
//FunctionhavingtwoIntparameterswithIntreturntype:
publicfunsum(a:Int,b:Int):Int{//访问修饰符省略时,默认为public
returna+b
}
//FunctionhavingthreeIntparameterswithIntreturntype:
funsum(a:Int,b:Int,c:Int)=a+b+c
//Functionreturningnomeaningfulvalue:
funprintSum(a:Int,b:Int):Unit{//Unit为无类型,类似java中的void,可以省略
println("sumof"+a+"and"+b+"is${a+b}")
println("sumof$aand$bis${a+b}")//在双引号中直接用$符操作变量与上句等价
}
funassignVarible(){
vala:Int=1//immediateassignmentval=本地只读变量即不可变immutable
valb=2//`Int`typeisinferred自动类型推断
valc:Int//Typerequiredwhennoinitializerisprovided
c=3//deferredassignment
varx=1//Mutablevariable:
x++
vals1="xis$x"//simplenameintemplate:
vals2="${s1.replace("is","was")},butnowis$x"//arbitraryexpressionintemplate:
println(s2)
}
funmaxOf(a:Int,b:Int):Int{
//returna>b?a:b;//原java中的三目运算符不可用
if(a>b)returna
elsereturnb
}
//funmaxOf(a:Int,b:Int):Int
funminOf(a:Int,b:Int):Int=if(a0)
returnobj.length
returnnull
}
//Usingaforloop
funforeachItems(){
//valitems=listOf("apple","banana","kiwi")
valitems=listOf("apple","banana","kiwi")
for(iteminitems){//inoperator
println("itemis$item")
}
for(indexinitems.indices){//indices索引type:Collection
//println("itemat$indexis${items.get(index)}")
println("itemat$indexis${items[index]}")//使用[index]而不用.get(index)
}
}
//Usingwhenexpression
fundescribe(obj:Any):String=
when(obj){//when中必须有一个else
1->"One"
"Hello"->"Greeting"
isLong->"Long"
!isString->"notastring"
else->"Unknown"
}
//Usingranges如果在if中check的是一个数值,且使用了inoperator
funrange(){
valx=10;valy=9//同一行中使用;来分隔
if(xin1..y+1){//使用..来表示范围最后转换成xin1..10
//if(xin(1..(y+1))){//如此解释执行顺序没问题最后转换成xin1..10
//if(xin((1..y)+1)){如此解释执行顺序不行最后转换成xin10
println("fitsinrange")
}
for(xin1..5){//include5
}
for(xin1..10step2){//x+=2xisin{1,3,5,7,9}
println("rang1..10step2:$x")
}
for(xin9downTo0step3){//x=9,x>=0x-=3
println("xin9downTo0step3:$x")
}
for(xin0until10step2){//until10:notinclude10
println("xin1until10:$x")
}
}
//Checkingifacollectioncontainsanobjectusinginoperator:
funcontains(){
vallist=listOf("a1","a2","a3")//不可变list
when{//匹配到一个条件其它就不再匹配
"a4"inlist->println("壹")
"a5"inlist->println(list.size)
"a3"inlist->println("theindexis${list.indexOf("a3")}")
}
}
//Usinglambdaexpressionstofilterandmapcollections:
funcollectionsLambda(){
//vallist=mutableListOf()//可变list
//for(iin1..10){
//list.add(i)
//
//}
vallist=(1..10).toList()//上面的简写
list.filter{it%2==0}.map{it*3}.forEach(::println)
//list.filter{it%2==0}.map{it*3}.forEach{println("itemis$it")}
}
}
funmain(args:Array){
varbase=BasicSyntax()
base.printSum(10,20)
base.assignVarible()
varmin=base.minOf(10,20)
println("minnumberis$min")
base.getBaseSyntax(null)
base.printProduct("1","kk")
base.printProduct("33","66")
println(null)//直接输出了null字符串
base.foreachItems()
println(base.describe(2))
base.range()
base.contains()
base.collectionsLambda()
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!