1.Kotlin语言声明变量与内置数据类型
fun main() {
println("Hello word");
//声明变量 var 可读可改 name 变量名 String类型 一只小猪 值
var name: String = "一只小猪";
// TODO 内置数据类型
/* String 字符串
Char 单字符
Boolean true/falase
Int 整数
Double 小数
List 集合
Set 无重复元素集合
Map 键值对的集合 */
println(name);
}
2.Kotlin语言的只读变量
fun main() {
//默认提示:变量永远不会被修改,建议改成val == 不可改变的(只能读取不能修改)
var info: String = "MyInfo";
println(info);
}
3.Kotlin语言的类型推断
fun main() {
//提示:Explicitly given is redundant here
//显示给定的类型在这里是多余的
var info : String = "三只小虎"
println(info)
var age = 98
var xxx = "x"
println("" + age)
println("" + xxx)
}
4.Kotlin语言的编译时常量
//编译时常量只能是常用的基本数据类型,
//String Double Int Float Long Short Byte Char Boolean
const val PI = 3.1415 //定义编译时常量
//编译时常量只能在函数之外定义,为什么? 答:如果在函数之内定义,就必须在运行时才能调用函数默认值,何来编译时常量一说
//结论:编译时常量只能在函数之外定义,就可以在函数编译期间初始化了
fun main() {
//提示:修饰符const不能用于局部变量
//const val PI = 45;
}
5.查看Kotlin反编译后的字节码
6.Kotlin语言的range表达式(相当于if else)
fun main() {
var number = 148;
//number in 重那里到哪里
if (number in 10..59) {
println("不及格")
} else if (number in 0..9) {
println("不及格并且分数很差")
} else if (number in 60..100) {
println("及格")
} else if (number !in 0..100) {
println("分数不在0到100范围内")
}
}
7.Kotlin语言的when表达式
fun main() {
var number = 5;
//number in 重那里到哪里
var info = when (number) {
1 -> "今天是星期一"
2 -> "今天是星期二"
3 -> "今天是星期三"
4 -> "今天是星期四"
5 -> "今天是星期五"
6 -> "今天是星期六"
7 -> "今天是星期七"
else -> {
println("今天是休息的一天")
}
}
println(info)
}
8.Kotlin语言的String模板
fun main() {
var garden = "西湖"
var time = 6
println("今天天气很晴朗,去${garden}玩,玩了${time}小时")
var isLogin = true
println("正在登录中...${if (isLogin) "恭喜您登录成功" else "登录失败了"}")
}
9.Kotlin语言的函数
//函数默认是public
//其实Kotlin函数更规范,先有输入,再有输出
private fun method01(age: Int, name: String): Int {
println("您的姓名是${name},您的年龄是${age}")
return 200
}
//上面的Kotlin函数会变成下面的JAVA代码
private static final int method01(int age,String name){
System.out.println("您的姓名是 " + name + " 您的年龄是 " + age");
}
10.Kotlin函数中的默认参数
fun main() {
action1("小白兔", 22)
action3("小白兔")
action4()
}
private fun action1(name: String, age: Int) {
println("我的名字是${name},我的年龄是${age}")
}
private fun action3(name: String, age: Int = 77) {
println("我的名字是${name},我的年龄是${age}")
}
private fun action4(name: String = "王五", age: Int = 20) {
println("我的名字是${name},我的年龄是${age}")
}
11.Kotlin语言的具名函数参数
fun main() {
loginAction(username = "小白兔", phonenumber = "999", userpassword = "123456", age = 80)
}
private fun loginAction(username: String, userpassword: String, phonenumber: String, age: Int) {
println("username : $username, userpassword : $userpassword, phonenuber : $phonenumber , age : $age")
}
12.Kotlin语言的Unit函数特点
fun main() {
}
//相当java语言的void关键字(void是无参数返回的,忽略类型)但是它是关键字不是类型
//:Unit不写默认也会有, : Unit代表 无参数返回的 忽略类型 == Unit类型从类
private fun doWork(): Unit {
}
13.Kotlin语言的Nothing类型特点
fun main() {
show(99)
}
private fun show(age: Int) {
when (age) {
-1 -> TODO("没有这种分数")
in 0..59 -> "分数不及格"
in 60..70 -> "分数及格"
in 71..100 -> "分数优秀"
}
}
interface A {
fun show()
}
class AImpl : A {
override fun show() {
//下面这句话不是注释提示,会终止程序的
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
14.Kotlin反引号中函数名特点
fun main() {
//第一种情况
`登录功能 8月8日测试环境下,测试登录功能`("小白兔", "12345")
//第二种情况 in is 再Kotlin里面是关键字想引用java 怎么办呢? 加 `
Ktbase21.`is`()
Ktbase21.`in`()
}
private fun `登录功能 8月8日测试环境下,测试登录功能`(name: String, pwd: String) {
println("模拟用户名是$name,密码是$pwd")
}