Kotlin基础教程之控制流(顺序,分支,循环)
Kotlin的控制流与其他语言一样,顺序,分支,循环
顺序语句就不多说,分支有两种,if-else和when(类似于Java中的switch)
if语句:
运行结果:
Java中的case语句不仅支持整数值,最新的JVM还支持字符串,Kotlin的when语句更是强大,开关变量甚至可以是Double,Array等各种类型,换句话说when语句比switch语句强大,与if-else语句的能力已经不相上下:
运行结果:
while和do-while语句
与Java没有太大区别
运行结果:
for循环,使用Range作为for循环控制规则:
second@和fourth@类似于Java中的标签Label,可以用于break和continue语句,标签几乎可以出现在任何地方
运行结果:
简化的控制流;
Kotlin中还有这样的用法:
if-else语句和when语句可以出现在一条单独的语句中用于初始化一个变量.
运行结果:
这种用法可以用于替代三元操作符,
Kotlin中也有三元操作符,不过和Java中不同,Kotlin中的三元操作符用在null控制,现在不谈.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Kotlin this详解及实例
Kotlin this详解及实例 为了表示当前函数的接收者(receiver), 们使用this表达式: 在类的成员函数中,this指向这个类的当前对象实例: 在扩展函数中,或带接收者的函数字面值(function literal) 中, this 代表调用函数时, 在点号左侧传递的接收者参数: 如果this没有限定符,那么它指向包含当前代码的最内层范围.如果想要指向其他范围内的this,需要使用标签限定符. 带限定符的this 为了访问更外层范围(比如 类, 或 扩展函数, 或有标签的 带接受
-
Kotlin 泛型详解及简单实例
Kotlin 泛型详解 概述 一般类和函数,只能使用具体的类型:要么是基本类型,要么是自定义的类.如果要编写可以应用于多种类型的代码,这种刻板的约束对代码的限制很大.而OOP的多态采用了一种泛化的机制,在SE 5种,Java引用了泛型.泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用
-
Kotlin 基础教程之反射
Kotlin 基础教程之反射 概述 反射是语言与库中的一组功能, 可以在运行时刻获取程序本身的信息.在Kotlin中,不仅可以通过发射获取类的信息,同时可以获取函数和属性的信息.也就是说,在在运行时刻得到一个函数或属性的名称和数据类型) 可以通过简单的函数式, 或交互式的编程方式实现. 在Java平台上, 使用反射功能所需要的运行时组件是作为一个单独的JAR文件发布的( kotlinreflect.jar). 这是为了对那些不使用反射功能的应用程序, 减少其运行库的大小. 如果你需要使用反射,
-
Kotlin基础教程之函数定义与变量声明
Kotlin基础教程之函数定义与变量声明 可以看到,函数定义就是 <访问控制符> <函数名> <参数列表> <:返回类型(不写就是无返回类型)> { 函数体 } 单语句函数可以简写,比如add函数和add1函数效果是一样的 变量定义 var <标识符> : <类型> = <初始化值> 常量定义 val <标识符> : <类型> = <初始化值> 常量与变量都可以没有初始化值,但是在引用前
-
Kotlin基础教程之面向对象
Kotlin 面向对象 这几天一直在准备考试,实在没有时间,已经过去了这么久,终于要到面向对象了! 先看看Kotlin中的类长什么样吧. 可以看到Kotlin中的类还是很普通的,大多与Java相似,比较特殊的有: 每一个构造函数都必须为每一个成员变量赋予初值. primary constructor,这个构造函数的头部紧跟在类名之后,函数体却在类中,是由init关键字包含的一个代码块,这种函数头和函数体分开的写法还是很少有的,其实这两个部分会被整合成一个构造函数,使用jd-gui反编译class
-
Kotlin编写Android适配器Adapter
说好今天要写一个使用Kotlin写Adapter的列子,我想了半天也没有组织好语言,直接上代码吧,有一定Android基础的小伙伴肯定是能看的懂的 package com.example.administrator.kotlintest import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import and
-
Kotlin 内联函数详解及实例
Kotlin 内联函数详解及实例 概述 在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方.这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行.也就是通常说的压栈和出栈.因此,函数调用要有一定的时间和空间方面的开销.那么对于那些函数体代码不是很大,又频繁调用的函数来说,这个时间和空间的消耗会很大. 那怎么解决这个性能消耗问题呢,这个时候
-
Kotlin 基础教程之异常
Kotlin 基础教程之异常 概述 在Kotlin-null的处理里提到的NPE,它就是一个异常.而,异常是程序运行过程中出现的错误.在Kotlin中,所有的异常都继承于Throwable.对于每一个异常而言,它不仅仅包括异常的信息,还可以选择性包括异常的原因,而其原因也是一个异常的实例. 抛出异常 使用 throw表达式抛出异常: throw MyException("Hi There!") 捕获异常 如果在函数内部抛出了异常(或者在函数内部调用的其他函数抛出了异常),这个函数将在抛
-
Kotlin基础教程之控制流(顺序,分支,循环)
Kotlin的控制流与其他语言一样,顺序,分支,循环 顺序语句就不多说,分支有两种,if-else和when(类似于Java中的switch) if语句: 运行结果: Java中的case语句不仅支持整数值,最新的JVM还支持字符串,Kotlin的when语句更是强大,开关变量甚至可以是Double,Array等各种类型,换句话说when语句比switch语句强大,与if-else语句的能力已经不相上下: 运行结果: while和do-while语句 与Java没有太大区别 运行结果: for循
-
Kotlin基础教程之数据类型
Kotlin基础教程之数据类型 一切都是对象. 在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long,Float,Double 在Kotlin中没有原始类型,以上这些类型都是对象,比如 运行结果如下 Kotlin支持16进制字面值,二进制字面值和科学记数法,官方文档中没有提到8进制 所有基本的几个数据类型不会进行显式类型转换,这一点尤为重要!那么如何进行转换呢?如下: 可以使用toLong,toInt,toShort,toChar等函数进行
-
Kotlin 基础教程之数组容器
Kotlin 基础教程之数组容器 Arrays Kotlin 标准库提供了arrayOf()创建数组, **ArrayOf创建特定类型数组 val array = arrayOf(1, 2, 3) val countries = arrayOf("UK", "Germany", "Italy") val numbers = intArrayOf(10, 20, 30) val array1 = Array(10, { k -> k * k
-
Kotlin 基础教程之类、对象、接口
Kotlin 基础教程之类.对象.接口 Kotlin中类.接口相关概念与Java一样,包括类名.属性.方法.继承等,如下示例: interface A { fun bar() fun foo() { // 可选方法体 } } class Child: A { override fun bar() { // todo } override fun foo() { super.foo() } } class 构造器 Kotlin 中的类可以有一个 主构造器, 以及一个或多个次构造器, 主构造器是类头
-
Kotlin基础教程之操作符与操作符重载
Kotlin基础教程之操作符与操作符重载 Kotlin操作符的使用方法与其他语言差不多,最大的特点就在于infix function call(事实上infix function call并不是操作符的特性,而是函数的特性)和操作符重载. 可以看到在Kotlin中大部分的操作符都与一个函数相对应,之所以这样做,大概是为了进行操作符重载. Kotlin官方文档中强调"=赋值"操作在Kotlin中不是操作符,换句话说类似于x = y = z这样的连续赋值并不被允许(甚至赋值操作也不能和常规
-
kotlin基础教程之类和继承
kotlin基础教程之类和继承 类声明 使用class关键字声明类,查看其声明格式: : modifiers ("class" | "interface") SimpleName typeParameters? primaryConstructor? (":" annotations delegationSpecifier{","})? typeConstraints (classBody? | enumClassBody)
-
Kotlin 基础教程之注解与java中的注解比较
Kotlin 的注解完全兼容 Java 的注解. 声明注解 @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION) @Retention(AnnotationRetention.SOURCE) @MustBeDocumented annotation class Fancy 可以通过向注解类添加元注解(meta
随机推荐
- SpringMvc+Angularjs 实现多文件批量上传
- js正则表达式讲解之index属性(RegExp对象)
- ASP.NET通过自定义函数实现对字符串的大小写切换功能
- VS2015 搭建Asp.net core开发环境的方法
- C#制作鹰眼的详细全过程(带注释)实例代码
- Datatable删除行的Delete和Remove方法的区别介绍
- struts2开发流程及详细配置
- 使用C#创建Windows服务的实例代码
- 详解C语言的随机数生成及其相关题目
- Java读取txt文件的方法
- 用Javscript实现表单复选框的全选功能
- SpringMVC实现文件上传和下载功能
- 完美解决input[type=number]无法显示非数字字符的问题
- 深入浅出MyBatis中映射文件和实体类的关联性
- jquery 缓存问题的几个解决方法
- Jquery 效果使用详解
- jquery实现多行文字图片滚动效果示例代码
- jQuery无刷新上传之uploadify3.1简单使用
- JS优化与惰性载入函数实例分析
- 每天学Java!一分钟了解JRE与JDK