Kotlin基本语法训练
val propertyParams = 3.14
var x = 0
fun sum(a: Int, b: Int) = a + b
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}
fun maxOf1(a: Int, b: Int) = if (a > b) a else b
fun parseInt(str: String): Int? {
return str.toIntOrNull()
}
fun printProduct(arg1: String, arg2: String) {
val x = parseInt(arg1)
val y = parseInt(arg2)
if (x != null && y != null) {
println(x * y)
} else {
println("'$arg1' or '$arg2' is not a number")
}
}
fun getStringlength(obj: Any): Int? {
if (obj is String) {
return obj.length
}
return null
}
fun getStringlength1(obj: Any): Int? {
if (obj is String && obj.length > 0) {
return obj.length
}
return null
}
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a String"
else -> "UnKnown"
}
when{
rotationDegrees==0&&!mirrored->ExifInterface.ORIENTATION_NORMAL
rotationDegrees==0&&!mirrored->ExifInterface.ORIENTATION_FLIP_HORIZONTAL
else -> ExifInterface.ORIENTATION_UNDEFINED
}
fun main() {
println("Hello World!")
println(sum(3, 5))
val a: Int = 1
val b = 3
var x = 5
x += 1
var temp = 1
var s1 = "a is $a"
temp = 2
println(s1)
val s2 = "${s1.replace("is", "was")}, but now is $temp"
println(s2)
println("a+b=${a + b}")
println("max of 0 and 42 is ${maxOf1(0, 42)}")
printProduct("6", "8")
printProduct("a", "d")
println("---------------------for------------------")
val items = listOf("Apple", "banana", "kiwifruit")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
for (item in items) {
println(item)
}
println("---------------------while------------------")
var index = 0;
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}
index = 0
do {
println("item at $index is ${items[index]}")
index++
} while (index < items.size)
println("---------------------when else------------------")
println(describe(3))
println(describe("3"))
println(describe(1))
println(describe(1L))
println("---------------------使用区间(range)------------------")
val m=19
val w=19
if(m in 1..w+3){
println("fits in range")
}
println("区间迭代:")
for (x in 1..5){
print(x)
}
println()
println("数列迭代")
for(x in 1..9 step 4){
print(x)
}
println()
for(x in 9 downTo 0 step 3){
print(x)
}
println("---------------------创建基本类及其实例------------------")
val rectangle=Rectangle(5.0,2.0)
val triangle=Triangle(3.0,4.0,5.0)
println("Area of rectangle ${rectangle.caclulateArea()},its perimeter is ${rectangle.perimeter}")
println("Area of triangle ${triangle.caclulateArea()},its perimeter is ${triangle.perimeter}")
}
abstract class Shape(val sides: List<Double>){
val perimeter:Double get()=sides.sum()
abstract fun caclulateArea():Double
}
interface RectangleProperties{
val isSquare:Boolean
}
class Rectangle(var height:Double,var length:Double):Shape(listOf(height,length,height,length)),RectangleProperties{
override fun caclulateArea(): Double {
return height*length
}
override val isSquare: Boolean
get() =length==height
}
class Triangle(var sideA:Double,var sideB:Double,var sideC:Double):Shape(listOf(sideA,sideB,sideC)){
override fun caclulateArea(): Double {
val s=perimeter/2
return Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC))
}
}