一、变量,编译时变量
1、要声明可修改变量,使用var关键字。
2、要声明只读变量,使用val关键字。
/**
1. 编译时常量:
2. 1.只读变量并非绝对只读
3. 2.编译时常量只能在函数之外定义,因为编译时常量必须在编译时赋值,而函数都是在运行时才调用
4. 函数内的变量也是在运行时赋值,编译时常量要在这些变量赋值前就已存在。
5. 3.编译时常量只能是常见的基本数据类型:String、Int、Double、Float、Long、Short、Byte、Short、Char、Boolean
*/
const val MAX = 200 //编译常量,对应于java中的public static final 类加载的时候已经被初始化。
fun main() {
//类型推断:对于已声明并赋值的变量,它允许你省略类型定义。
val a: Int = 5
val str: String = "HELLO"
println(str)
println(a)
}
二、Kotlin的引用类型与基本数据类型
- Java中有两种数据类型:基本数据类型和引用类型
- Kotlin只提供引用类型这一种数据类型,出于更高性能的需要,Kotlin编译器会在Java字节码中改用基本数据类型,来提高性能。
三、Kotlin内置数据类型
四、表达式和String模板
1、表达式//表达式
//表达式
//1.if/else if表达式
//2.range表达式
//in A..B,in关键字来检查某个值是否在指定的范围之内
fun main() {
val age = 4
if (age in 0..3) {
println("婴幼儿")
} else if (age in 3..12) {
println("少儿")
} else {
println("未知")
}
if (age !in 1..3) {
println("测试一下")
}
/**
* when表达式
* 1.允许你编写条件式,在某个条件满足时,执行对应的代码
* 2.只要代码包含if,else分支,都建议改用when表达式
*/
val school = "小学1"
val level = when (school) {
"学前班" -> "幼儿"
"小学" -> "少儿"
"中学" -> "青少年"
else -> {
println("未知")
}
}
println(level)
}
输出结果:
少儿
测试一下
未知
kotlin.Unit
2、String模板
- 模板支持在字符串的引号内放入变量值
- 还支持字符串里计算表达式的值并插入结果,添加在${}中的任何表达式,都会作为字符串的一部分求值。
fun main() {
val origin = "Jack"
val dest = "Rose"
println("$origin love $dest")
val flag = false
println("Answer is:${if (flag) "我可以" else "对不起"}")
}
输出结果:
Jack love Rose
Answer is:对不起
五、创建函数
1、函数结构如下
fun main() {
println(doSomething(18, false))
println(fix("Jack"))
/**
* 具名函数参数
* 如果使用命名值,就可以不用管值参的顺序
*/
println(fix(age = 19, name = "Herr"))
/**
* 输出结果:
* Herr19
* Kotlin.Unit (这个说明该函数没有返回值,没有返回值的函数叫Unit函数,也就是说他们的返回类型是Unit)
*/
/**
* Unit函数:
* 不是所有的函数都有返回值,Kotlin中没有返回值的函数叫Unit函数,也就是说他们的返回类型是Unit.
* 在kotlin之前,函数不返回任何东西用void描述,意思是'没有返回类型,不会带来什么,忽略它',也就是说
* 如果函数不返回任何东西,就忽略类型。但是void这种解决方案无法解释现代语言的一个重要特征,泛型。
*/
/**
* TODO函数的任务就是抛出异常,就是永远别指望它运行成功,返回Nothing类型。
*/
TODO("nothing")
println("after nothing")
}
//不加可见修饰符,默认为public
fun doSomething(age: Int, flag: Boolean): String {
return "result"
}
/**
* 默认值参,如果不打算传入值参,可以预先给参数指定默认值
*/
private fun fix(name: String, age: Int = 2) {
println(name + age)
}
输出结果:
result Jack2 kotlin.Unit Herr19 kotlin.Unit Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented: nothing at kotlin01.FuncationKt.main(Funcation.kt:26) at kotlin01.FuncationKt.main(Funcation.kt)
2、反引号中的函数名
/** * 反引号中的函数名 * 1.kotlin可以使用空格和特殊字符对函数命名,不过函数名要用一对反引号括起来 * 2.为了支持Kotlin和Java互操作,而Kotlin和Java各自却有着不同的保留关键字,不能作为函数名, * 使用反引号括住函数名就能避免任何冲突 */ fun main() { //kotlin调用java代码 MyJava.`is`() `**~special funcation with weired name~**`() } fun `**~special funcation with weired name~**`() { println("special funcation with weired name") }
输出结果:
is invoked special funcation with weired name
文章来源于互联网:Kotlin 中变量,类型,表达式,函数详解
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/19790,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/19790,转载请注明出处。
评论0