函数中有返回类型的函数两种写法
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
网友评论