美文网首页
Kotlin基础1-一些不同的写法

Kotlin基础1-一些不同的写法

作者: isLJli | 来源:发表于2020-06-27 11:24 被阅读0次

函数中有返回类型的函数两种写法

fun sum(a: Int, b: Int): Int {
      return a + b
  }

  fun sum2(a: Int, b: Int) = a + b

函数中没有返回类型的函数两种写法

  fun myPrint(a:Int,b: Int):Unit{
      println(a+b)
  }

  fun myPrint2(a:Int,b: Int){
      println(a+b)
  }

打印:a+b=5

1.在java中的写法

fun myPrint2(a:Int,b: Int){
      println(a+"+"+b+"="+a+b)
  }

2.Kotlin的写法

fun myPrint(a:Int,b: Int){
      println("$a+$b = ${a+b}")
  }

类型的转换

var x= 10
  var y:Byte = 20
  x = y.toInt()
  println(x)

打印结果:20

动态引用包名的方法

package main.Simple2

fun multiply(a:Int,b:Int) = a+b
package main.Simple1

//import main.Simple2.multiply
import main.Simple2.multiply as myMultipy //为方法设置别名
fun main(args:Array<String>){
  val a:Int = 1
  val b=2

  var c:Int
  c= 3

  var x= 10
  var y:Byte = 20
  x = y.toInt()

  println(x)
//   println(multiply(2,3))
  println(myMultipy(2,3))

}

打印结果:
20
5

更换常量Array的值

val m = intArrayOf(1,2,3) //常量
  m.set(0,4) //把第0个元素变成4

  for (item in m){
      println(item)
  }

打印结果:
4
2
3

If可以作为值返回

一般的写法:

var x = 10
  var y = 20
  var max :Int
  var min :Int

  if (x>y){
      max =x
      min =y
  }else{
      max =y
      min =x
  }

  println("max= $max,min=$min")

if作为值返回

 var x = 10
  var y = 20
  var max = if (x>y) x else y
  var min = if (x>y) y else x

  println("max= $max,min=$min")

也可以使用代码快

var x = 10
  var y = 20
  var max = if (x>y) {
      println("x>y")
      x
  }else{
      println("x<=y")
      y
  }
  var min = if (x>y) {
      println("x>y")
      y
  } else {
      println("x<=y")
      x
  }

  println("max= $max,min=$min")

打印结果:
x<=y
max= 20,min=10

将String转换成Int

fun main(array: Array<String>){
  println(convert2Int("23"))
  println(convert2Int("ab"))

}
//将String转换成Int
fun convert2Int(string: String):Int?{
  try {
      return string.toInt()
  }catch (e:NumberFormatException){
      e.printStackTrace()
      return null //要加?可空类型才能返回null
  }
}

打印结果:
23
null

对于返回的数据可能是空,一定要先判空,再做操作

fun main(array: Array<String>){
  printMultiply("2","3")
  printMultiply("2","ab")

  printMultiply2("4","3")
}

fun printMultiply(a:String,b:String){
  var  a1 = convert2Int(a)
  var  b1 = convert2Int(b)
  if (null != a1 && null != b1){
      println(a1*b1) //一定要先判断不为空,才相乘,不然是Null*Nulll
  }else{
      println("param not int")
  }
}

fun printMultiply2(a:String,b:String){
  var  a1 = convert2Int(a)
  var  b1 = convert2Int(b)
  if (null == a1){
      println("param not int")
  }else if (null == b1){
      println("param not int")
  }else{
      println(a1*b1)
  }

判断类型,将String的值转成大写

fun main(array: Array<String>){
  println(convert2Uppercase("hello world"))
  println(convert2Uppercase(23))
}

// 转换成大写
fun convert2Uppercase(str: Any):String?{
  if(str is String){
      return str.toUpperCase()
  }
  return null
}

打印结果:
HELLO WORLD
null

for遍历访问数组

fun main(args: Array<String>){
  var array = intArrayOf(1,2,3,4,5) // IntArray在java编译后会变成Int[]数组
  //遍历值
  for (item in array){
      println(item)
  }
  println("-----------")
  //遍历下标
  for (i in array.indices){
      println(array[i])
  }
  println("---------")
  //遍历下标和值
  for ((index,value) in array.withIndex()){
      println("$index="+value)
  }

}

打印结果:
1
2
3
4
5


1
2
3
4
5


0=1
1=2
2=3
3=4
4=5

when替代if_else的用法

fun main(args:Array<String>){
  println(mtPrint("hello"))
  println(mtPrint("world"))
  println(mtPrint("test"))
  println("-----------------")
}
fun mtPrint(string: String):String{
  // when 相当于java的if_else
  return when(string){
      "hello" -> "HELLO"
      "world" -> "WORLD"
      "hello world" -> "HELLO WORLD"
      else -> "other world"
  }
}

打印结果:
HELLO
WORLD
other world

var a= 10
  var result = when(a){
      1 -> {
          println("a = 1")
          10
      }
      2->{
          println("a = 2")
          20
      }
      3,4,5 ->{
          println("a = 3 a = 4 a = 5")
          30
      }
      in 6 .. 10 ->{
          println("a  between 6 in 10")
          40
      }
      else ->{
          println("a  other value")
      }
  }
  println(result)

打印结果:
a between 6 in 10
40

For数据范围的遍历

fun main(args:Array<String>) {
  val a =5
  val b= 10
  if (a in 2..b){
      println("in the range")
  }

  if (a !in 2..b){
      println("out of the ragne")
  }

  println("--------------")

  for (i in 2..10){
      println(i)
  }

  println("--------------")
  for (i in 2.rangeTo(10)){
      println(i)
  }

  println("--------------")
  for (i in 2..10 step 2){
      println(i)
  }

  println("--------------")
  for (i in 10 downTo 2 step 4){
      println(i)
  }
}

打印结果:
in the range


2
3
4
5
6
7
8
9
10


2
3
4
5
6
7
8
9
10


2
4
6
8
10


10
6
2

集合的遍历

fun main(args:Array<String>){
  //集合
  var array = listOf<String>("hello","world","hello world","welcome","goodbye")

  for (item in array){
      println(item)
  }
  println("---------")

  when{
      "world" in array -> println("world in collection")
  }
  println("----------")

  //找出长度>5,全部转换成大写,然后按字母大小排序
  array.filter { it.length >5 }.map { it.toUpperCase() }.sorted().forEach{ println(it)}
  
}

打印结果:
hello
world
hello world
welcome
goodbye


world in collection


GOODBYE
HELLO WORLD
WELCOME

kotlin的String

fun main(args:Array<String>){
  var a :String = "hello \n world"
  println(a)

  var b:String = """hello
      \n world
      welcom
      """
  println(b)
}

打印结果:
hello
world
hello
\n world
welcom

相关文章

网友评论

      本文标题:Kotlin基础1-一些不同的写法

      本文链接:https://www.haomeiwen.com/subject/yyveahtx.html