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

1
2
package  my.demo
import  java.util.*


2. 函数定义

fun函数有两个Int参数和一个Int返回值

1
2
3
fun sum(a: Int, b: Int): Int{
     return  a + b
}

函数表达式和返回值

1
fun sum(a:Int, b: Int) = a + b

Unit 函数无返回值

1
2
3
fun sum(a: Int, b: Int):Unit {
     println( "a: ${a} , b: ${b}" )
}

无返回值函数

1
2
3
fun sum1(a: Int, b: Int){
     println( "aa: ${a}, bb: ${b}" )
}


3. 局部变量

不可变局部变量(val)

1
2
val a: Int =  1   // immediate assignment
val b =  2    // `Int` type is inferred

可变局部变量

1
2
var x =  5
x +=  1


4. 注释

// 和 /**/


5. String 模板

1
2
3
4
5
var a =  1
val s1 =  "a is ${a}"
 
a =  2
val s2 =  "${s1.replace(" is ", " was ")}, but now is ${a}"


6. 条件表达式

1
2
3
4
5
6
7
fun maxOf(a: Int, b: Int): Int{
     if (a > b) {
         return  a
     } else  {
         return  b
     }
}


使用if表达式

1
fun maxOf(a:Int, b: Int) =  if (a > b) a  else  b


7. 使用可为null的值和null检查

一个引用必须被明确标记为可能为null

1
2
3
4
fun maxOf(a:Int, b: Int): Int? {
     println( "a: ${a}" )
     return  null
}


8. 类型检查和动态转换

1
2
3
4
5
6
7
fun getStringLength(obj: Any): Int? {
     if  (obj is String) {
         return  obj.length
     }
     
     return  null
}


9. 循环

1
2
3
4
5
6
7
8
9
10
11
12
13
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 循环

1
2
3
4
5
6
7
8
val items = listOf( "a" "b" "c" "e" "f" )
     
var ind =  0
     
while (ind < items.size) {
     println( "value: ${items[ind]}" )
     ind ++;
}


11. when 表达式

1
2
3
4
5
6
fun descrbe(obj: Any): String =
when (obj) {
     1  ->  "one"
     "Hello"  ->  "greeting"
     else  ->  "else default"
}


12. 范围

检查一个数字是否在一个范围时可以使用in

1
2
3
4
5
6
7
8
val x =  10
val y =  8
     
if (x in  1 .. y+ 1 ) {
     println( "x in..." )
} else  {
     println( "not in" )
}

检查一个数字不在一个范围

1
2
3
4
5
if  (x !in  1 ..y+ 1 ) {
     println( "b not in " )
} else  {
     println( "b x in" )
}

迭代一个范围

1
2
3
for (x in  1 .. 5 ) {
     println(x)
}

级数遍历一个范围

1
2
3
for (x in  1 .. 5  step  2 ) {
     println(x)
}


13. 使用集合

遍历

1
2
3
4
var lists = listOf( "a" "b" "c" )
     for (ele in lists){
     println(ele)
}


使用in检查某个元素是否在某个集合

1
2
3
4
when {
     "a"  in lists -> println( "a in list" )
     "b"  in lists -> println( "b in list" )
}


使用lambda语法过滤集合

1
2
3
4
5
6
var lists = listOf( "acake" "apple" "orange" )
     
     lists.filter { x->x.startsWith( "a" ) }
     .sortedBy { it }
     .map { x->x.toUpperCase() }
     .forEach{println(it)}




     本文转自rongwei84n 51CTO博客,原文链接:http://blog.51cto.com/483181/1931412,如需转载请自行联系原作者



相关文章
|
11月前
|
分布式计算 Java 数据安全/隐私保护
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下 )
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下)
58 0
|
11月前
|
设计模式 Java Kotlin
Kotlin 学习笔记(三)—— Kotlin 的动态代理你会写吗?(下)
Kotlin 学习笔记(三)—— Kotlin 的动态代理你会写吗?(下)
102 1
|
3月前
|
安全 Java Linux
Kotlin 编程语言详解:特点、应用领域及语法教程
**Kotlin**是JetBrains于2016年推出的编程语言,兼容Java,广泛用于移动(尤其是Android)、Web、服务器及数据科学。它的语法简洁安全,支持多平台,学习曲线平缓,且拥有活跃的社区。`main()`函数是程序入口,`println()`用于输出,而`print()`不换行。注释以`//`开始单行,`/* */`包裹多行
78 0
|
4月前
|
XML Java 开发者
预测一下 Kotlin 未来会有哪些新语法
预测一下 Kotlin 未来会有哪些新语法
62 0
|
11月前
|
缓存 API Android开发
Kotlin 学习笔记(七)—— Flow 数据流学习实践指北(三)冷流转热流以及代码实例(下)
Kotlin 学习笔记(七)—— Flow 数据流学习实践指北(三)冷流转热流以及代码实例(下)
138 0
|
11月前
|
缓存 Java Kotlin
Kotlin 学习笔记(七)—— Flow 数据流学习实践指北(三)冷流转热流以及代码实例(上)
Kotlin 学习笔记(七)—— Flow 数据流学习实践指北(三)冷流转热流以及代码实例(上)
92 0
|
11月前
|
存储 缓存 Android开发
Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow(下)
Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow(下)
150 0
|
11月前
|
存储 缓存 人工智能
Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow(上)
Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow(上)
71 0
|
11月前
|
API Android开发 Kotlin
Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)(下)
Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)(下)
55 0
|
11月前
|
安全 Kotlin
Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)(上)
Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)(上)
66 0