小白Kotlin入门语法(二)

继续来一起学习Kotlin基础吧~~
Kotlin常量与变量
常量
在Kotlin中什么是常量
val me:String = “helloworld”,val =value,val它是值类型。类似Java的final,不能重复赋值。
例如:
//运行时常量
val x= getX()
//编译器常量
const val x = 2
变量
什么是变量,var
例如:
var x = "helloworld"//定义变量
x = "hehe"//再次赋值
类型推导
什么是类型推导,那就是说编译器可以自动推导出目前的变量类型。
例如:
val myString = "hello"//推导出String 类型
val myInt = 5//int类型
这里主要是省略了不用写类型对比java的final String myString = “hello”,更加简洁。
函数(方法)
在kotlin函数语法中比java简洁有点儿像js,接下来我们来看看。
fun 函数名(参数列表):返回值类型{
函数体
}
例如
fun kill(name :String){
printIn("hello,$name")
}
fun 函数名(参数列表):表达式
fun kill(name:String )=printIn("hello,$name")
匿名函数
必须要赋值给一个变量
fun()
例如
val kill = fun(name:String) = printIn("hello,$name");
Lambda表达式
什么是Lambda表达式,其实就是匿名函数。
语法如下:
{参数列表->函数体的最后一行是返回值}
val sum = {a:Int,b:Int->a+b}
Lambda表达式的类型
()->Unit
无参数,返回值为 Unit
(Int)->Int
传入整型,返回一个整型
(String,(String)->String)->Boolean
传入字符串、Lambda表达式,返回Boolean
逻辑语句表达式
中缀表达式
只有一个参数,且用infix修饰的函数
class Book{
infix fun on(place:String){
}
}
另外一种写法
Book() on "My"
if表达式
if(a==b)..else if (a==c)..else
val x = if(b<0)0 else b
##when表达式
###特点
1、加强版的switch,支持任意类型
2、支持纯表达式条件分支(类似 if)
3、表达式与完整性
for循环
基本写法
-for(element in elements)…
给任意类实现Iterator方法
iterater运行机制
While循环
do…while(…)….
while()…
跳过跳出循环
continue
跳过当前循环用continue
break
终止循环
多层循环嵌套的终止结合标签使用
意思就是添加一个标签证明是终止外层循环还是内层循环
Outter@for(...){
Inner@while(i<0){
if(..){
break@Outter//标签指的是外循环
}
}
}
异常捕获
try..catch..
1、catch分支匹配异常类型
2、表达式,可以用来赋值
val resuly = try{
1
}catch(e:Exception){
0
}
finally
无论代码是否抛出异常都会执行
具名参数
给函数的实参附上形参
sum(arg1 = 1,arg2 = 2)
变长参数添加vararg关键字
某参数可以接收多个值
可以不为最后一个参数
如果传参时有歧义,需要使用具名参数
action(1,2,3,4)
fun action(vararg ints:Int){
}
Spread Operator(星号)
只支持展开Array
只用于变长参数列表的实参
不能重载
不算真正意义上的符
val array = intArrayOf(1,2,3,5)
action(*array )
添加星号数组代表展开数组
默认参数
为函数参数指定默认值
可以为任意位置的参数指定默认值
传参时如果有引起歧义,需要使用具名参数来标识
val array = intArrayOf(1,2,3,5)
action(ints = *array,name = "hello") //歧义了--使用具名参数标识传int值,第一个参数不传
fun action(d:Double=1.0,vararg ints:Int,name:String){
}
//里面的d是给了默认值1.0
以上是我的学习小笔记,希望对大家有帮助。有疑问可以留言哦!!
更多推荐


所有评论(0)