Kotlin极简教程(1)数据类型

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ZackSock/article/details/97288042

一、基本数据类型(后面有演示代码)

1、基本类型和变量声明:

         基本类型:Int、Long、Float、Double、Boolean、Char、String

         变量声明:var 变量名:变量类型 = 变量值

//声明Int类型变量num,赋值10
var num : Int = 10

ps:kotlin中不需要分号结尾,声明变量时数据可以省略数据类型

注:用val关键词声明是的变量类似于Java中用final修饰了,声明时必须初始化

2、简单变量之间的转换

         toInt()、toLong()、toFloat()。。。等

二、数组

         1、数组变量的声明

                  1.1、基本数组

                           除String外,其它基本类型数组定义为
                           

var num:XArray = xArrayOf()
//例
var num:InteArray = intArrayOf(1, 2, 3)
var word:CharArray = charArrayof('z', 'a', 'c', 'k')

                  1.2、String数组

//String数组
var str_array:Array<String> = arrayOf("zack", "rudy");

         2、数组元素的操作

                  2.1、获取元素

                           ary[index]或ary.get(index)

                  2.2、遍历

//ary为数组,it为其中的元素。可以直接在{}中使用,不需要我们定义
ary.forEach{
	print(it)	
}

三、字符串

         1、字符串与基本类型的转换

                  1.1、除转换为Char外,其它都用toX

                           toInt()、toFloat()。。。等

                  1.2、转换为Char

                           toCharArray()

         2、字符串的常用方法

var str:String = "Do not go gentle into that good night!"
//获取下标
str.indexOf("!")

//从start截取,到end前一个结束
str.substring(start, end)

//以regx为界限切割成数组
str.split(regx)

四、容器

         1、容器的基本操作

                  1.1、三大容器

                           Set、List、Map(每类容器又分为只读和可变两种,前面三个为只读,添加Mutable为可变)

                           MutableSet、MutableList、MutableMap

                  1.2、基本操作

//创建一个List容器
var nameList:MutableList = mutableListof("zack", "rudy", "alice")

//判断是否为空
nameList.isEmpty()

//判断是否为非空
nameList.isNotEmpty()

//清除容器
nameList.clear()

//判断是否包含"zack"
nameList.contains("zack")

//返回迭代器
nameList.iterator()

//返回长度
nameList.count()

                  1.3、创建容器

//创建只读容器
var list:List<String> = listOf("zack", "rudy", "alice")
var set:Set<String> = setOf("zack", "rudy", "alice")

//创建Map容器的时候,需要使用关键词to,to前面是键,后面是值
var map:Map<String, String> = mapOf("name" to "zack")

//创建可变容器
var list:MutableList<String> = mutableListOf()
var set:MutableSet<String> = mutableSetOf()

//创建MutableMap时,需要使用Pair(Key, Value)
var map:MutableMap<String, String> = 
mutableMapOf(Pair("name", "zack"), Pair("sex", "male"))

         2、集合Set/MutableSet

                  2.1、基本特性

                           Set为无序的,不能用下标访问

                           容器内元素为唯一的,如果添加的元素与容器内元素哈希码相同,则会把元素覆盖

                           元素不可修改

                  2.2、for-in循环

//set为容器名,item为自定义的名称
for (item in set){
    //在for循环里面调用item就是元素
    println(item)
}

                  2.3、迭代器遍历

//获取迭代器
var iterator = set.iterator()

//while循环遍历元素
while(iterator.hasNext()){
    
    //调用next()方法,获取其中的元素
    val item = iterator.next()
}

                  2.4、forEach遍历

//set为集合名称
set.forEach{
    //在{}中可以直接用it关键字调用set的元素    
}

注:

//只有MutableSet有add()和remove()方法

//添加元素
set.add("zack")

//删除元素,因为Set是无序的,所以不能通过下标删除元素
set.remove("zack")

         3、队列List/MutableList

                  3.1、基本方法

//定义一个队列
var list:MutableList<String> = mutableListOf();

//添加元素,将元素添加到对尾
list.add("zack")

//通过下标获取元素
list.get(0)

//设置指定下标的值,其中index为下标,value为替换后的值
list.set(index, value)

//移除下标为index的值
list.removeAt(index)

注:遍历方式三种容器是通用的

                  3.2、sort系列排序

//升序排列,其中it.age为排序条件
sortBy{ it.age }

//降序排列
sortByDescending{ it.age }


//关于it.age
//加入有下列队列,泛型为Person(自定义的类)
var humanList:MutableList<Person> = mutableListOf()

//此时it.age的含义就是:将humanList中的人,按照年龄来升序排
humanList.sortBy{ it.age }

         4、映射Map/MutableMap

                  4.1、基本方法

//MutableMap的初始赋值需要通过Pair(Key, Value)来进行
var testMap:MutableMap = mutableMapOf()

//判断是否包含含有指定键名key的元素
testMap.containsKey(key)

//判断是否包含含有指定值value的元素
testMap.containsValue(value)

//添加元素,传入键和值
testMap.put(Key, Value)

//通过键key删除元素
testMap.remove(key)

猜你喜欢

转载自blog.csdn.net/ZackSock/article/details/97288042
今日推荐