广州网站建设服务公司,皮皮果网站建设,网站分类目录源码,vs网站开发参考文献Kotlin学习#xff08;一#xff09;
1.使用IDEA构建Kotlin项目 新建工程即可
我这里选择的Build System是IntelliJ#xff0c;虽然我没用过但是这是Kotlin基础学习应该不会用到其他依赖
2.Hello World
package com.simonfun main(args:ArrayString){println(一
1.使用IDEA构建Kotlin项目 新建工程即可
我这里选择的Build System是IntelliJ虽然我没用过但是这是Kotlin基础学习应该不会用到其他依赖
2.Hello World
package com.simonfun main(args:ArrayString){println(hello kotlin);
}3.常量与变量
package com.simon
//变量声明与使用
fun main(args:ArrayString){//变量var name 张三name 李四println(name)// name 8 //8是一个数字不能放到String里面println(name)
}常见的数据类型:
Byte 2的8次方
Short 2的16次方
Int 2的32次方
Long 2的64次方
Float 小数点后6位
Double 小数点后15-16位
String 字符串
Boolean 布尔型
4.类型推断
package com.simonfun main(args:ArrayString){var i 18//i 9999999999//The integer literal does not conform to the expected type Int//我们发现我们的i自动编译为Int类型var j 9999999999//我们的j可以存储自然那么编译为Long类型var name:String simon//我们的name就是存放一个字符串的空间//我们根据等号后面来推断数据类型val num 123//num是常量所以说是只读}根据等号后面来自动推断类型
所以我们的var name:String “simon” 可以写为 var name “simon”
5.基础类型大小
package com.simonfun main(args:ArrayString) {val aByte:Byte Byte.MAX_VALUE;val bByte:Byte Byte.MIN_VALUE;println(aByte)println(bByte)val aLong:Long Long.MAX_VALUE;val bLong:Long Long.MIN_VALUE;println(aLong)println(bLong)
}6.布尔值类型
package com.simonfun main(args:ArrayString) {var num1 1var num2 4println(num1num2)var num3 Math.sqrt(5.0) - Math.sqrt(4.0)var num4 Math.sqrt(4.0) - Math.sqrt(3.0)println(num3num4)
}7.函数
package com.simon
//1.函数基本定义格式
fun sum(a:Int,b:Int):Int{//函数返回值Intreturn a b
}fun main(args: ArrayString) {//2.可以用表达式作为函数体//表达式不是public就可以省略返回值类型fun sum(a: Int,b: Int) ab}
// 3.public 方法表达式就要明确写出
public fun sumPub(a:Int , b: Int):Int ab
//4.无返回值可以省略
fun printZzz(){println(printZzz)
}
public fun printXxx(){println(printXxx)
}
//5.可变长参数列表
fun vars (vararg v:Int){for (vt in v) {println(vt)}
}
//6.lambda表达式
val sumLambda: (Int,Int)-Int {x,y - xy}
8.字符串模板
package com.simonfun main(args: ArrayString) {//$ 表示一个变量名或者变量值var a 1var s1 a is $aprintln(s1)a 2//${}是一个变量的方法返回值var s2 ${s1.replace(is,was)},but now a $a;println(s2)
}
总结:
$ 可以是变量值
${} 可以是变量的方法返回值
9.NULL检查
package com.simonfun main(args: ArrayString) {//类型后面加?表示可以为空var age:Int? null
// var age1:Int null//抛出空指针异常
// val ages age!!.toInt()//不作处理返回nullvar ages1 age?.toInt()//age为空返回-1var ages2 age?.toInt() ?:-1// println(ages)println(ages1)println(ages2)println(parseInt(zzz))println(parseInt(123))
}
//当一个引用可能是null时对应的类型声明必须明确地标记为可为null
fun parseInt(str:String):Int?{return str.toIntOrNull();
}//上面这段代码就是我们的age这个变量是int类型但是我们赋值为null因为加了问号说明可以为null
// var age1:Int null 是抛出空指针如果是数字就不会抛出
// var ages1 age?.toInt() 这个就自然输出null了不处理
// var ages2 age?.toInt() ?:-1 这个就处理了如果是null就赋值-110类型检测以及自动类型转换
package com.simonfun main(args: ArrayString) {println(getStringLength(123))println(getStringLength(123))
}fun getStringLength(obj: Any):Int?{
// if (obj is String){
// return obj.length
// }
// return nullif (obj !is String){return null}//在这个分支中,obj会自动转换为String类型return obj.length
}is and !is 类型判断
11.区间
package com.simonfun main(args: ArrayString) {for (i in 1..4) print(i)//什么都不输出,所以得知默认是升序的for (i in 4..1) print(i)for (i in 1..10){print(i)}println()//使用step指定步长for(i in 1..4 step 2){print(i)}println()for(i in 4 downTo 1 step 2){print(i)}println()//使用until函数排除结束元素for(i in 1 until 10){print(i)}
}区间 in xx…xx
默认升序downTo降序
并且step指定步长
并且until排除结尾