-
可以使用下划线来增强可读性(Kotlin1.1版本开始支持)
val oneMillion = 1_000_000 val creditCardNumber = 1234_5678_9012_3456L val socialSecurityNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010
-
数组
关键字Array,创建数组,使用arrayOf://使用arrayOf简单创建数组 var students: Array<String> = arrayOf("Clock", "D_clock", "技术视界") var studentNums = arrayOf(1, 2, 3) 使用arrayOfNulls可以创建一个指定长度,元素内容为空的数组
//创一个长度为10,元素内容皆为null的数组 var emptyArray = arrayOfNulls<String>(10)
Kotlin对一些基础类型定义数组会有拆装箱的开销,所以也可以使用自身封装好的一些API进行创建数组,以降低开销:
//创建一个int数组,避免封箱装箱操作 var intArray = intArrayOf(1, 2, 3)
Kotlin数组还支持使用闭包进行初始化,就像下面这样:
//使用闭包初始化一个Array<String>,数组内容为["0", "1", "4", "9", "16"] var asc = Array(5, { i -> (i * i).toString() })
-
字符串
关键字String:var useString: String = "I am a boy" var firstChar: Char = useString[0] //相当于Java的String.charAt(0)
Kotlin的同样支持字符串模板,但是相比Java的String.format要简洁很多。比如:
var nickname: String = "D_clock爱吃葱花" println("my nickname is $nickname")//输出昵称 println("nickname length: ${nickname.length}")//输出昵称的长度
-
定义函数
Kotlin定义一个函数的风格大致如下访问控制符 fun 方法名(参数,参数,参数) : 返回值类型{ ... ... }
- 访问控制符:与Java有点差异,Kotlin的访问范围从大到小分别是public、internal、protected、private,不声明默认是public;
- 返回值类型:不需要返回类型的函数,后面的
: 返回值类型
可以缺省(这里可以看到无论是变量还是方法,Kotlin都喜欢名字在前,类型在后);
Kotlin支持包级函数,即函数不依赖于类而存在:
package lesson1 fun main(args: Array<String>) { println("Kotlin") }
-
参数变长
Kotlin的参数变长,传递的参数使用关键字vararg标明即可/***Kotlin版代码***/ fun displayActors(vararg name: String) { println("actors: " + name); } /***Java版代码***/ public void displayActors(String... name) { System.out.println("actors :" + name); }
-
静态变量和函数
Kotlin没有Java中的static概念,如果在Kotlin中需要像Java一样定义静态变量和函数可以使用companion object,companion object后可以加上自定义的object名,也可以省略。// 定义 class KotlinStatic { companion object Test { var kotlinInt: Int = 0 fun getInstance(): KotlinStatic { return KotlinStatic() } } } // 使用 KotlinStatic.kotlinInt KotlinStatic.getInstance()
在Kotlin中,如果真的想要实现和Java中的static变量或函数,官方更推荐使用包级别的变量或函数来实现。
-
For循环
for循环能够对任何提供迭代器(iterator)的对象进行遍历fun useFor() { val students: Array<String> = arrayOf("java", "kotlin", "go") for (student in students) {//输出学生名字 println("student: $student") } for ((index, student) in students.withIndex()) {//输出学生的下标和名字 println("the element at $index is $student") } }
-
返回和跳转
continue、break、return三种跳转都支持跳转到指定的标签处,使用@在对应的循环或者匿名函数做标记即可:fun useJump() { val numbers = arrayOf(1, 2, 3, 4, 5) val numbers2 = arrayOf(1, 3, 5, 7, 9) //设置testLab标签名 testLab@ for (num in numbers) { println("num: $num") for (num2 in numbers2) { if (num == 3) { break@testLab//直接中断标签指定的整个循环 } } } }
变量和函数
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我眼中的js编程(1)主要介绍了js是用来做什么的,这一篇开始及以后总结js具体该怎么用。本篇总结了作用域内变量和...
- 今天中午放学闺女吃着饭,牙掉了差点吃到肚子里。今天改时间了,中午去的早一点,下午放学早一点,哎,到现在闺女还没睡呢...