Kotlin学习快速入门(2)——条件 数组 循环 方法
条件
if条件判断
常用的判断和Java一样,这里提一下不同的用法
1.if可以作为三元运算符
val max = if (a > b) a else b
2.使用in判断是否在某个区间
val x = 1
//相当于条件 1<= x <=8
if(x in 1..8){
println("在区间内")
}
//与上面的条件相反
if(x !in 1..8){
...
}
3.is关键字类型转换
相当于Java中instanceof
关键字
使用了is
,kotlin已经自动完成了类型转换
val text = "hello"
if(text is String){
...
}
when(swich分支)
1.字符串分支
val result = ""
when(result){
"OK","SUCCESS" -> print("成功")
"Falied" -> {
一系列操作...
}
else ->{
一系列操作...
}
}
2.数值分支
val num = 2
when(num){
in 1..10 -> println("num在1和10之间")
11,12 -> println("num为11或12")
}
3.表达式使用
//hasPrefix方法返回true或fasle
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
4.不带参数
//里面的分支条件是布尔表达式
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}
数组
kotlin中数组用Array类实现,使用arrayOf方法或者是Array()的构造方法创建数组
//Int数组 [1,2,3]
val a = arrayOf(1, 2, 3)
//String数组 ["he","you"]
val a = arrayOf("he","you")
//工厂方法,["he0","he1],"he2"]
val array = Array(3, { i -> ("he" + i) })
//还可以传对象
val a = arrayOf(student1,student2)
除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样。
循环
while循环与java一样,这里不多说
普通for循环
//0-4循环(包括0和4) 打印01234
for(i in 0..4){
println(i)
}
//反序 4-1 两边都包括 打印4321
for (i in 4 downTo 1){
print(i)
}
//[0-4),不包括4 打印0123
for (i in 0 until 4) {
println(i)
}
//结果为13(步长为2,相当于每次循环i=i+2)
for(i in 1..4 step 2){
println(i)
}
数组遍历
//collection数组,list,String等可迭代的对象
for (item in collection){
print(item)
}
//it就是数组中的一个元素
array.forEach {
println(it)
}
//indices是数组的区间(0-length-1)
for (i in array.indices) {
print(array[i])
}
//得到下标和数值
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
方法
无返回值
//Unit相当于Void,可以省略不写
fun sayHello(): Unit{
println("hello world")
}
fun sayHello(){
println("hello world")
}
带返回值
fun sayHello(): String{
return "hello world"
}
//如果方法是作为表达式,则可以省略声明方法返回的类型
fun sayHello() = "hello"
// public方法则必须明确写出返回类型
public fun sum(a: Int, b: Int): Int = a + b
带参数
fun max(num1: Int, num2: Int): Int {
return if (num1>num2) num1 else num2
}
可变参数
可变参数使用vararg关键字修饰
fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}
Kotlin学习快速入门(2)——条件 数组 循环 方法的更多相关文章
- Kotlin学习快速入门(7)——扩展的妙用
原文地址: Kotlin学习快速入门(7)--扩展的妙用 - Stars-One的杂货小窝 之前也模模糊糊地在用这个功能,也是十分方便,可以不用继承,快速给某个类增加新的方法,本篇便是来讲解下Kotl ...
- Kotlin学习快速入门(4)——集合使用
List,Set,Map都是集合 List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素.元素可以在 list 中出现多次.列表的一个示例是一句话:有一组字.这些字的顺序很重要并且字可以重 ...
- Kotlin学习快速入门(5)——空安全
介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...
- Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用
本文适合有Java基础的人 Kotlin语法特点 相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获 主函数 kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之 ...
- Kotlin学习快速入门(3)——类 继承 接口
类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...
- 【python学习笔记】5.条件、循环和其他语句
[python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块 impo ...
- python学习(五) 条件、循环和其他语句
第五章 条件.循环和其他语句 5.1 print和import的更多信息 5.1.1 使用逗号输出 >>> print('age',43,45) // 可以用逗号隔开 ...
- Python学习之路4☞条件和循环
一.if语句 1.1 功能 计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码) if语句就是来控制计算机实现这一功能 1.2 语法 ...
- PL/SQL学习(二)条件和循环语句
原文参考:http://plsql-tutorial.com/ PLSQL条件语句 IF THEN ELSE STATEMENT 1) IF condition THEN statement ...
随机推荐
- myeclipse2018的下载安装教程
首先注意事项!!!!!!! 在安装破解前是不可以打开软件的 jdk版本不能是10版本,1.8或1.9都可以 附上MyEclipse2018的百度云下载链接: 链接:https://pan.baidu. ...
- Spring的Bean的生命周期
一:生命周期执行的过程如下:1) spring对bean进行实例化,默认bean是单例.2) spring对bean进行依赖注入.3) 如果bean实现了BeanNameAware接口,spring将 ...
- win2008环境mysql主从配置
一.主库相关配置.设置 step1:主库配置文件 [mysqld] # 数据库id,唯一 server-id = 1# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编 ...
- vue回顶部 组件 可以直接使用
<template> <div id="goTop"> <div class="goTop" v-show="goTop ...
- 安装R和Rstudio后,Rstudio出现空白和fatal error问题
解决方法: 1.一定要以管理员方式启动Rstudio 2.只能安装一个R版本,之前安装的其他版本需要卸载干净 3.R和Rstudio需要安装在同一目录下
- VirtualBox中安装CentOS使得在ssh和外网都能正常链接
一.网卡模式选择 网卡1:Host-only 用于主宿机互访,这是主宿机通过192.168.56.X这一网络通信,主机是否能上网不影响双方通信 网卡2:NAT 宿机用这一网卡通过主机上网 二.具体配置 ...
- 使用SSH+SFTP操作终端全解析,告别XShell
1.前言 在Windows系统下操作远程服务器的方式很多,比如XShell+XFTP组合,亦或是PuTTY+WinSCP组合,但在Mac系统下登陆远程服务器,并没有这些工具供我们使用.相比较而言,在M ...
- 【搜索引擎】 PostgreSQL 10 实时全文检索和分词、相似搜索、模糊匹配实现类似Google搜索自动提示
需求分析 要通过PostgreSQL实现类似Google搜索自动提示的功能,例如要实现一个查询海量数据中的商品名字,每次输入就提示用户各种相关搜索选项,例如淘宝.京东等电商查询 思路 这个功能可以用 ...
- 基于C#的机器学习--我应该接受这份工作吗-使用决策树
决策树 要使决策树完整而有效,它必须包含所有的可能性.事件序列也必须提供,并且是互斥的,这意味着如果一个事件发生,另一个就不能发生. 决策树是监督机器学习的一种形式,因为我们必须解释输入和输出应该是什 ...
- win10win7office系列激活工具 KMSAuto Net 2016 v1.5.4 绿色便携版
下载地址:点我 KMSpico又称KMS激活工具,KMSpico是目前成功且经常更新的Windows激活工具,可以激活任何版本的window系统和任何版本的Office软件,即使是win8和offic ...