当前位置: 首页 > news >正文

网站没有排名网站建设公司一站通系统简单

网站没有排名,网站建设公司一站通系统简单,网站核验单,赣州有店科技有限公司从今天开始慢慢总结kotlin的相关知识#xff0c;和大家一起学习进步。 1#xff1a;变量 kotlin的变量定义有两种val和var。 第一种val val i10#xff1b;val定义的变量为不可改变量#xff0c;如上面i10后#xff0c;如果我们添加 i10首先编译器#xff08;androi…从今天开始慢慢总结kotlin的相关知识和大家一起学习进步。 1变量 kotlin的变量定义有两种val和var。 第一种val val i10val定义的变量为不可改变量如上面i10后如果我们添加 i10首先编译器android studio就会提示我们报错! 错误信息是Val cannot be reassigned 第二种 var var num 10num 102函数 fun addSum(i1: Int, i2: Int): Int {return i1 i2}看下上面的代码我们简单分析下组成 fun函数定义关键字addSum函数名i1Int对应参数名以及参数类型中间用分隔 也就是说函数中变量的使用方式是name: type的格式 当然我们还是给参数指定默认值 怎么去写呢 很简单 fun addSum2(i1: Int0, i2: Int1): Int {return i1 i2} 这么我们使用的时候就可以这么写 Log.i(tag, addSum2(num).toString())两个参数后面的: Int则代表函数的返回值类型 kotlin里面Int是首字母大写与java中int类似但是java里面的int是基本类型而kotlin里面则是一个类。简单截个Int的代码 kotlin中还可以把上面的函数更简化 private fun addSum2(i1: Int, i2: Int 2): Int i1 i2可以看到当函数返回单个表达式的时候我们可以吧{}以及return等省略替换为等号后面就是指定的代码体。 参数默认值的写法有人会发现我的传个Int 和string,怎么报错了 那么像这种我们怎么传值呢kotlin当然考虑到了这个问题而且给出了新的用法键值对传值的方法 如图所示我们制定参数名称就可以是不是很方便 3集合 首先来张整体的框架图 可以看到顶层的四个基本接口分别是 IterableMutableIterableCollectionMutableCollection。 而下面六个在创建的时候又分为可变和不可变集合。 3.1 list 首先我们来看下list相关 构建list我们需要用到标准的库函数listOf()listOfNotNull()mutableListOf()arrayListOf(),其中前两个是不可变集合后两个是可变的。 val list1 listOf(1, 2, 3) val list2 mutableListOf(1, 2, 3)val list3 arrayListOf(2, 3, 4)val list4 listOfNotNull(1, 3, 4) 可以看到构建集合是非常简单的而且mutableListof构建的list2中有addremove等方法也就是可变集合。 至于listOfNotNull我们打印下看下输出结果 可以看到 listOfNotNull自动将null忽略可以看下源码 /*** Appends all elements that are not null to the given [destination].*/ public fun C : MutableCollectionin T, T : Any Arrayout T?.filterNotNullTo(destination: C): C {for (element in this) if (element ! null) destination.add(element)return destination }可以看到在底层如果参数为null就不会添加到destination中。 到这里构建list已经完结我们来接着看遍历list 这里我们先说下kotlin中的循环遍历分为两种for循环和while循环。 val list1 listOf(1, 1, 1, null)for (i in list1) {println(i)}var size list1.size - 1while (size 0) {println(list1[size])size--}另外除了这两种外我们还可以使用Lambdas表达式 list1.forEach { println( it) }这种是不是更方便 3.2 set set构建主要有setOf(),mutableSetOf(),hashSetOf(),linkedSetOf(); val set1 setOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21) val set2 mutableSetOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21)val set3 hashSetOf(1, 2, 3) val set4 linkedSetOfInt(1, 2, 3, 4, 5)其中只有setOf()是只读其余都是可读写的。 包含addaddallremove等方法。 另外从上图可以看出linkedSetOf()是不允许有null值的。 其次set中会自动去除相同元素这点跟java是一致的。 比如set1中虽然我们赋值了7个值但是set1实际为[1,2,3,21,null]. 3.3 Map MapK, out V 是以键值对的形式存在与listset一样构建时都分为可变和不可变集合。 其中mapof()为不可变 而linkedMapOf(), hashMapOf(),mutableMapOf()是可读写的。 val map1 mapOf(1 to map1-1, 2 to map1-2, null to null)val map2 linkedMapOf(1 to map2-1, 2 to map2-2, null to null)val map3 hashMapOf(1 to map3-1, 2 to map3-2, null to null)val map4 mutableMapOf(1 to map4-1, 2 to map4-2, null to null)println(map1--------------------------)map1.forEach { (key, value) - println($key \t $value) }println(map2--------------------------)map2[3] map2-3map2.forEach { (key, value) - println($key \t $value) }println(map3--------------------------)map3[3] map3-3map3.forEach { (key, value) - println($key \t $value) }println(map4--------------------------)map4[4] map4-3map4.forEach { (key, value) - println($key \t $value) }可以看到输出结果map的键值对是可以为null的。 4数组 kotlin中数组是Array代码很简单我们直接上代码 public class ArrayT {public inline constructor(size: Int, init: (Int) - T)public operator fun get(index: Int): Tpublic operator fun set(index: Int, value: T): Unitpublic val size: Intpublic operator fun iterator(): IteratorT }可以看到get和set方法以及遍历和长度。 首先我们根据constructor来创建数组 var array0 Array(3) { i - i 1 }其中3是指数组长度sizei-i1赋值。 另外一种则跟listset等一致使用arrayOf(); val array arrayOf(1, 2, 3)array[1] 100array.forEach { println(it) }5数组集合转换 5.1数组转集合 val array arrayOf(1, 2, 3)数组创建好了开始转这里用到的是toList方法。 /*** Returns a [List] containing all elements.*/ public fun T Arrayout T.toList(): ListT {return when (size) {0 - emptyList()1 - listOf(this[0])else - this.toMutableList()} }逻辑很简单如果size为0则返回空集合 如果为1则使用listof()创建不可变集合 否则使用toMutableList(); /*** Returns a [MutableList] filled with all elements of this array.*/ public fun T Arrayout T.toMutableList(): MutableListT {return ArrayList(this.asCollection()) }也很简单返回ArrayList。 当然Array转换的方法不止toList一种 感兴趣的朋友可以每个都熟悉下。 5.2集合转数组 这里拿toIntArray为例 /*** Returns an array of Int containing all of the elements of this collection.*/ public fun CollectionInt.toIntArray(): IntArray {val result IntArray(size)var index 0for (element in this)result[index] elementreturn result }代码很简单1构建Int数组 2for赋值 3返回array。 另一种则是 val listStr listOf(list, set, map) val arrayStr listStr.toTypedArray() arrayStr.forEach { println(it) }
http://www.w-s-a.com/news/525081/

相关文章:

  • 用php做的网站源代码那里有做像美团的网站的
  • 网站建设百科有什么做兼职的网站
  • 创造网站电商网站建设方案道客巴巴
  • 南通设计网站建设wordpress时光轴
  • 郑州做网站企起网站建设 风险
  • 北京市保障性住房建设投资中心网站6大连广告设计与制作公司
  • 建站之星网站模板国内f型网页布局的网站
  • 怎么做网站关键词优化外贸网站 开源
  • 广东公司响应式网站建设设计seo系统是什么
  • 清丰网站建设费用网站建设的前途
  • 网站上那些兼职网页怎么做的北京网页
  • 桂林建站平台哪家好品牌设计公司宣传文案
  • 平面设计和建设网站的区别公司官网静态
  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些
  • 网站建设 自适应国内最近的新闻
  • 校园网站开发背景吴江网站建设公司
  • 网站开发工程师发展趋势山东省建设工程电子信息网站
  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用
  • 网站如何做友情链接有道云笔记WordPress
  • 贵阳企业网站建设制作赤峰浩诚网站建设公司
  • asp官方网站微信模板素材
  • wordpress 留言给站长发邮件做百度推广员赚钱吗
  • 北京建站公司做网站价格专门找人做软件的网站
  • 商务网站的特点ui软件界面设计