Kotlin基础

8个基本数据类型


var age: Int  = 12
var price: Double = 45.0
var distance: Float = 1f
var flag: Boolean = true
var chhh: Char = '1'
var log: Long = 1000
var byt: Byte = 10
var shortl: Short = 45

字符串数组 INT数组

 val arrayOf = arrayOf(12, 13, 13, "jijj")
  val intArrayOf = intArrayOf(1, 2, 3)

for循环

  val arrayOf1 = arrayOf("a", "b", "c", "d")
for (s in arrayOf1){
    println("for  "+s)
}

While循环

  var i: Int = 0
while (i < arrayOf1.size){
    val get = arrayOf1.get(i)
    i++
    println("while  "+get)
}

集合和遍历集合

	 val setConllection:Set<String> = setOf<String>("java","android","C++","kotlin")
for (s in setConllection){
    println(s)
}

val iterator = setConllection.iterator();
while (iterator.hasNext()){
    println(iterator.next())
}
setConllection.forEach {
    println(it)
}

#List

val listOf = listOf<String>("a", "b", "c")
   listOf.forEach {
       println(it)
   }
   for (s in listOf){
       println(s)
   }
#Set
  val mutableSetOf = mutableSetOf<String>("hello,word")
   mutableSetOf.add("java")
   val mutableListOf = mutableListOf<String>("a2","b2","c2")
   mutableListOf.add("hello")
   mutableListOf.forEach {
       println(it)
   }
#Map
 mapOf<String,String>("苹果" to "ipone8","华为" to "mate10")
   val mutableMapOf = mutableMapOf<String,String>(Pair("苹果","ipone"),Pair("华为","mate10"))
   var desc = ""
   mutableMapOf.forEach { key, value ->desc="${desc}厂家:${key},名称:${value}\n"
       println(desc)

   }
#遍历
```javascript
 
    val 一到一百 = 1..100
   一到一百.forEach {
       println(it)
   }
   val 一到一百的奇数 = 一到一百.step(2)
   一到一百的奇数.forEach {
       println(it)
   }

   val 字母 = 'a'..'z'
   字母.forEach {
       println(it)
   }

   val a是否在in= 'a' in 字母
   print("A是否在in中 "+a是否在in)

   //倒序的方法
   val 一百到一 = (1..100).reversed()
   一百到一.forEach {
       println(it)
   }

   val 倒计时 = 5.downTo(0)
   倒计时.forEach {
       Thread.sleep(1000)
       println(it)
   }
   val 一百到二百 = 100..200
   一百到二百.forEach {
       println(it)
   }

#判断

  when(num){
        10,11,22 -> println("是0,1,2中的一个")
        12 -> println("是1")
        in 100..1100 -> println("输入的数字是在1到100之间")
        in arrayOf(11,12,13,41) -> println("在数组中")
        is Int -> println("是int类型")

        else -> println("无结果")
    }
    when{
        num < 1000 -> println("输入的参数小于1000")
        num > 10 -> println("输入的参数大于10")
        else -> println("无结果")
    }
    

#操作符

 val m = Matrix(8,8,8,8)
   val n = Matrix(9,9,9,9)
   val mn = m + n;
   println("矩阵相加的结果是:$mn")

   val mn2 = m.plus(n)
   println("矩阵相加的结果是:$mn2")

   /*!x    x.not()
   -y    y.unaryMinus()*/
   val boo = true
   boo.not();
   val num = 3
   num.unaryMinus()

   val numbers = arrayOf(5,6,7,8)
   val a = 6 !in numbers
   val b = !numbers.contains(6)

   val i = numbers[0]
   val get = numbers.get(0)
   numbers.set(0,8)

#扩展方法

/*val al = Element("铝")
al.react(Particle())
al.react(Electron())*/
//open是公开的 在新的类后面加:代表继承或实现接口 fun是方法
open class Particle()//粒子
class Electron:Particle()//电子
open class Element(val name:String){//元素
    open fun Particle.react(name:String):Unit{
        println("$name 与粒子发生反应")
    }
    open fun Electron.react(name:String):Unit{
        println("$name 与电子发生反应生成同位素")
    }

    fun react(paricle:Particle):Unit{
        paricle.react(name)
    }
}

/*val neon = NobleGas("氩")
neon.react(Particle())
neon.react(Electron())*/
class NobleGas(name:String):Element(name){//惰性气体
    override fun  Particle.react(name:String):Unit{
        println("$name 是稀有气体,不与粒子发生反应")
    }
    override fun Electron.react(name:String):Unit{
        println("$name 是稀有气体,不与电子发生反应")
    }

    fun react(particle:Electron):Unit{
        particle.react(name)
    }
}

#中辍函数

val train = "你的家" to "我的心"
    var t = "西六支".to("原东")
    println(train)
    println(t)
    val train1 = "你""我"
    println(train1)
    val t1 = "心".to("里")
    println(t1)
    
	infix fun String.(other:String):String{
	    return this + other
	}

函数字面量

  "hello"
    12
    2.5
    println("work")
    val pr = { println("hello")}
    println(pr)

    val primsg = {msg:String -> println(msg)}
    fun primsg(msg:String){
        println(msg)
    }
    primsg("kotlin 很有趣")

菲薄函数

	fun main(args: Array<String>){
	println("非薄:  "+fibo(10))
	}
	fun fibo(total:Int):Int = when(total){
	    0 -> 1
	    1 -> -1
	    else -> fibo(total - 1) + fibo(total - 2)
	}
//let函数
fun myLet(): Int{
    "myLet".let {
        println(it)
        return 321
    }
}
//with函数
fun myWith() {
    with (ArrayList<String>()){
        add("杜昌")
        add("王舒蓉")
        add("99")
         println("this = " + this)
    }.let{ println(it)}
}
//run函数
fun myRun() {
    ArrayList<String>().run {
        add("33333")
        add("22222")
        add("11111")
        println(this.joinToString())
    }.let { println(it) }
}
//lazy函数
@RequiresApi(Build.VERSION_CODES.O)
fun myUse() {
    val input = Files.newInputStream(Paths.get("f:\\myInformation.txt"))
    val byte = input.use {
        input.read()
    }
}
//repeat函数
fun myRepeat() {
    repeat(8,{ println("执行")})
}
//require函数
fun myRequire(i: Int) {
    require(i > 0 ,{"数字必须大于0"})
    println(i)
}
//泛型函数
fun <T> outputString(a:T,b:T,c:T):String{
    return "$a,$b,$c"
}
var 求和 = {x:Int,y:Int -> x+y}
fun gaojie(a:Int,b:Int,c:(x:Int,y:Int)-> Int){
    c(a,b)
}
fun g(){
    gaojie(1,2, {x:Int,y:Int -> x+y})
}

#SET()GET()方法

fun main(args:ArrayList<String>){
    var p = Progeer()
    println(p.fieldProp)
    p.fieldProp = "耶耶耶"
    println(p.fieldProp)
}
class Progeer() {
    var fieldProp = ""
        get() = field+"获得了"
        set(value) {
            field = value+"设置了";
        }
}

Null值

fun main(args:ArrayList<String>){
  var vaa = heat("水")
    println(vaa)

    var v = heat(null)
    println(v)
}
//类型后面加问号可以让值为空,不加?会报错
fun heat(str:String?):String{
    return "热"+str
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值