kotlin语言--基础知识(1)

最近kotlin语言比较火,所以我今天也来学习一下,顺便做个笔记,便于日后的复习!!!废话不多说,下面直接进入主题:

 

定义常量

val a:Int=15 //在kotlin中,val用于定义常量
//定义变量
var b:Int=20 //在kotlin中,var 修饰变量
//先定义类型,后赋值
val c:Int //定义类型
c=5 //后期初始化
//一种简写
val d=2
var e=5

小结:
①定义变量书写格式:var(val) 标识符:类型
②常量和变量需要关键字:var和val
③数据类型都已大写字母开头

定义函数(方法)

//方式一(无参)
fun buy(){

    }
    //方式二:有参五返回值(注::Unit相当于void,可写可不写)
    fun login(name:String,pwd:String):Unit{
        
    }
    //方式三:有参有返回值(:在这里指的是返回值)
    fun sum(m: Int, n: Int): Int {
        return m + n
    }

小结:
①定义函数时,函数头包含了函数名还必须包含fun关键字
②返回值:返回值类型在函数定义末尾指出,用冒号(:)隔开,如果没有返回值返回Unit,也可以省略

补充:无论什么语言,函数定义包含一下几个部分
函数头:函数名和标识函数的关键字
参数:参数名和参数类型
返回值

//注释
kotlin和java类似,支持单行和多行注释,但不同的是kotlin支持嵌套注释

2、基本数据类型
kotlin语言一切皆对象
数据类型:Double、Float、Long、Int、Short、Byte、Char、Boolean

在Kotlin中不能类型自动转换但是提供了方法:

toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()

数组

//方式一
val arr= arrayOf("wahaha","shuagnwaiwai","wangzai")
//提供了set方法
arr.set(3,"aaa")
//get()方法-->>获取对应的值
val aaa = arr.get(2)
println("666666aaa") //打印的数据为: 666666wangzai //获取数据大小 arr.size //遍历数组 for (i in arr)print("QQQQQQQi")
//方式二
var arr2=Array(5,{i -> (i*1).toString()})
//方式三
//Kotlin还提供了具体数据类型的数组,ByteArray, ShortArray,IntArray等,它们和
Array没有继承关系。但是也是有属于自己类型的操作方法以及属性等。
var ddd= intArrayOf(10,20,30)
//也可以这样写
var intArr : IntArray = intArrayof(0,1,2)
var intArr2 : Array<Int> = arrayof(0,1,2)

如何用kotlin进行输出数据呢?

//方式一(以美元符号()开头) val a = 10 print("a = a") //打印结果为 a = 10
//方式二({ }大括号中任意表达式)
val str = "kotlin"
print(""str.length是 {"str.length"}) //打印结果kotlin.length长度是3

选择语句:使用when代替了switch case

var id: Int=2
when (id) {
1 -> println("id==1")
2 -> println("id==2")
else->{
print("id is neither 1 nor 2")
}
}

循环语句

//方式一
for (i in 1..3) {
println("aaaaaaaaaaa"+i)
}
//方式二
for (i in 6 downTo 0 step 2){
println("bbbbbbbbbb"+i)//6 4 2 0
}

补充:返回和跳转(continue return break)
return。默认从最直接包围它的函数或者匿名函数返回。
break。终止最直接包围它的循环。
continue。继续下一次最直接包围它的循环。

在学习过程中遇到了?和!!,那么他们代表什么呢?
? :?在标识符后使用,代表对象可为空,如果当前对象为空,不会抛出空指针异常。而是会返回null
!! :代表当前变量或常量一定不能为空。如果为空,就抛出空指正异常

// 可为空
var age : String? = null
// 可为空,如果age为空,返回null
var age1 = age?.toInt()
// 不能为空
var age2 = age!!.toInt()

类型转换
在java中使用instanceof,但是在java中用的是is

 

fun getStringLength(obj : Any): Int? {
if(obj is String){
// 进行is判断以后,会自动转化成obj
return obj.length
}
if(obj !is String){
return null
}
return null
}

注:any在Kotlin所有类中,有一个公共的superclass,名字就叫:Any

判断两个对象是否相等
①Java中,判断两个对象的地址,或者两个对象是否相等,分别使用equals和==。
②kotlin中,稍微做了一点改动,kotlin中的==等同于java中的equals,kotlin中的===等同于java中的==。

标签
标签是一个非常好用的东西。他可以让我们在多循环嵌套的情况下,进行穿插处理。不会像java一样,continue,break只能针对当前循环

在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签。 要为一个表达式加标签,我们只要在其前加标签即可。

fun lableDemo() {
val intArray= intArrayOf(1,2,3)
val intArray2= intArrayOf(1,2,3)
Log.i("aaaaa","start for")
intArrFor@for(int in intArray){
Log.i("aaaaa","for intArray int : int") intArr2For@for (int2 in intArray2){ // 每一次退出,回到intArrFor if(int2 == 1) break@intArrFor Log.i("aaaaa","for intArr2 int2 :int2")
}
}
}

今天就写这么多,,,日后更新,,,要去写项目啦。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值