21. Kotlin学习笔记 (一) 基本语法
Eclipse下安装: eclipse安装kotlin
如果用Help->Eclipse marketplace安装不成功的话,可以用Help->Install new software
Android studio只要安装3.0版本就可以: Android studio下载
kotlin github源代码
kotlin官网和在线执行代码
个人觉得学习kotlin语法的话,用eclipse可能比较方便点,直接写直接运行。
1. package
package my.demo
import java.util.*
2. 函数定义
fun函数有两个Int参数和一个Int返回值
fun sum(a: Int, b: Int): Int{return a + b
}
函数表达式和返回值
fun sum(a:Int, b: Int) = a + b
Unit 函数无返回值
fun sum(a: Int, b: Int):Unit {println("a: ${a} , b: ${b}")
}
无返回值函数
fun sum1(a: Int, b: Int){println("aa: ${a}, bb: ${b}")
}
3. 局部变量
不可变局部变量(val)
val a: Int = 1 // immediate assignment
val b = 2 // `Int` type is inferred
可变局部变量
var x = 5
x += 1
4. 注释
// 和 /**/
5. String 模板
var a = 1
val s1 = "a is ${a}"a = 2
val s2 = "${s1.replace("is", "was")}, but now is ${a}"
6. 条件表达式
fun maxOf(a: Int, b: Int): Int{if(a > b) {return a}else {return b}
}
使用if表达式
fun maxOf(a:Int, b: Int) = if(a > b) a else b
7. 使用可为null的值和null检查
一个引用必须被明确标记为可能为null
fun maxOf(a:Int, b: Int): Int? {println("a: ${a}")return null
}
8. 类型检查和动态转换
fun getStringLength(obj: Any): Int? {if (obj is String) {return obj.length}return null
}
9. 循环
val items = listOf("a", "b", "c", "e")for(zz in items) {println(zz)
} //或者
val items = listOf("a", "b", "c", "e", "f")for(idx in items.indices) {println(items.get(idx))println("value: ${items[idx]}")}
10. while 循环
val items = listOf("a", "b", "c", "e", "f")var ind = 0while(ind < items.size) {println("value: ${items[ind]}")ind ++;
}
11. when 表达式
fun descrbe(obj: Any): String =
when (obj) {1 -> "one""Hello" -> "greeting"else -> "else default"
}
12. 范围
检查一个数字是否在一个范围时可以使用in
val x = 10
val y = 8if(x in 1.. y+1) {println("x in...")
}else {println("not in")
}
检查一个数字不在一个范围
if (x !in 1..y+1) {println("b not in ")
}else {println("b x in")
}
迭代一个范围
for(x in 1..5) {println(x)
}
级数遍历一个范围
for(x in 1..5 step 2) {println(x)
}
13. 使用集合
遍历
var lists = listOf("a", "b", "c")for(ele in lists){println(ele)
}
使用in检查某个元素是否在某个集合
when {"a" in lists -> println("a in list")"b" in lists -> println("b in list")
}
使用lambda语法过滤集合
var lists = listOf("acake", "apple", "orange")lists.filter { x->x.startsWith("a") }.sortedBy { it }.map { x->x.toUpperCase() }.forEach{println(it)}
转载于:https://blog.51cto.com/483181/1931412
21. Kotlin学习笔记 (一) 基本语法相关推荐
- Kotlin学习笔记(3)- 语法
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- Kotlin学习笔记(1)-- 基础语法
文章目录 Kotlin学习笔记(1)-- 基础语法 输出 语法 代码 输出 可读可改(var) 语法 代码 输出 内置数据类型 只读变量(val) 类型推断 编译时常量 语法 代码 输出 引用类型 r ...
- Kotlin学习笔记20 阶段复习2
参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 lambda表达式 内联函数 Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数_积跬步 至千里- ...
- Kotlin 学习笔记(八)—— Kotlin类与对象之接口
Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...
- Kotlin学习笔记(2)- 空安全
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- Kotlin学习笔记(1)- 环境配置
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...
- Kotlin 学习笔记(七)—— Kotlin类与对象之属性与字段
Kotlin 学习笔记(七)-- Kotlin类与对象之属性与字段 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- ...
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- Kotlin学习笔记1——变量、函数
Kotlin学习笔记1 (学习教材为<第一行代码(第三版)>by郭霖) 1.Kotlin概述 Java虚拟机不关心class文件的编译来源,即只要是符合规格的class文件,Java虚 ...
最新文章
- 如何手工删除AD RMS SCP?
- 《你不知道的JavaScript》整理(四)——原型
- 记一次小米前端面试题(一面)2020.10.28
- python修改静态html_Python 静态页面爬虫---urllib3库实现
- Qt工作笔记-Qt生成dll或so,并且调用(含Liunx端与Windows端)
- ubuntu16.04 64bit 安装 ida
- MOV指令在32位汇编程序和64位汇编程序下的相同与不同之处
- Trie树(c++实现)
- Tensflow学习笔记(一)——TF生成并查看数据
- js 获取当天时间,实现展示包含今天的一周时间的方法
- SpringCloud + RocketMQ实现最大努力通知型事务
- oracle alter system kill,ALTER SYSTEM KILL SESSION详解
- Visio画图如何保存高质量图片供论文使用
- 计算机查看正在运行的程序,win7系统查看当前正在运行程序状态的方法
- 【分布式缓存之Voldemort 介绍】
- 网络信息安全之安全风险管理
- jsp使用session出现The server encountered an unexpected condition that prevented it from fulfilling the r
- EXCEL 删除表格内的空格和空白字符
- 百度“算盘”logo引领国风来袭
- Linux 常用命令大全(虚拟机)
热门文章
- 【Python-2.7】多种方式删除列表元素
- 【数据仓库】数据仓库设计前如何粗估所需的存储空间大小?
- 异常来自 HRESULT:0x800A01A8
- iOS10 Safari不识别viewport禁用缩放的暴力解决方案
- 浏览器最小显示12px字体的解决方法
- react-native 编译出现 ld: library not found for -lDoubleConversion 错误的解决方案
- 在Objective-C中,如何测试对象类型?
- win11虚拟机如何安装 Windows11虚拟机安装步骤教程
- Git:撤销回滚操作
- 原生js的ajax的get怎么传参,原生js---ajax---get方法传数据