kotlin入门基础语法学习笔记(代码片段)

化作孤岛的瓜 化作孤岛的瓜     2022-11-30     560

关键词:

敲了一天的kotlin基础语法,整理归纳到一个类里面,便于以后忘记的时候复习。

/**
 * Created by GG on 2017/11/20.
 */
//main函数
fun main(args: Array<String>) 
    var testMain = TestMain()
    print(testMain.array())


class TestMain 
    //单例的写法
    companion object 
        @Volatile var instance: TestMain? = null
            get() 
                if (field == null) 
                    synchronized(TestMain::class.java) 
                        if (field == null)
                            field = TestMain()
                    
                
                return field
            
    


    //变量定义
    var name: String = ""
    //常量数组int[][][] arrs = new int[3][2][1];
    val arrs = Array(3)  Array(2)  IntArray(1)  

    val list = arrayListOf(String)//arrayListOf("a","b")

    //返回一个String
    fun testFun(name: String) 
        this.name = name
        println(this.name)
    

    //加法函数,普通写法
    fun add(a: Int, b: Int): Int 
        return a + b
    

    //加法函数表达式写法(public 方法必须写出返回类型)
    fun add2(a: Int, b: Int): Int = a + b

    //无返回值函数
    fun noBack(msg: String, num: Int) 
        print(msg + num)
    

    //可变长度参数函数
    fun extend(vararg v: Int) 
        for (tempV in v) 
            print(tempV)
        
    

    //lambda函数 **
    fun testLambda() 
        val sumLambda: (Int, Int) -> Int =  x, y -> x + y 
    

    //字符串模板 $ 的用法
    fun testString() 
        var a = 1
        var s1 = "a is $a" //a is 1
        println(s1)
        a = 2
        var s2 = "$s1.replace("is", "was")"  //a was 1
        println(s2)
    

    //数组
    fun array() 
        //数组的两种写法
        var arrays = arrayOf(1, 2, 3)
        var arraysb = Array(3,  i -> (i * 2) )
        arraysb[1] = 111
        println(arraysb.toList().toString())
    

    fun str() 
        val text = ""
    

    //NULL 检查机制  跑出异常加!!   允许为空加?
    fun testNull() 
        var age: String? = null  //类型后面加?表示可为空
        var age1 = age!!.toInt()   //跑出空指针异常
        var age2 = age?.toInt() //不对空null 做处理
        var age3 = age?.toInt() ?: -1 //如果为空返回- 1
        //  print(age3)
    

    //比较
    fun compare() 
        var a: Int = 5222
        println(a === a)    //对象地址相等,值相等
        val box1: Int = a
        val box2: Int? = a
        //这里遇到了一个问题,如果 ?=是可以正常装箱的,但是 = 会导致box1和box2的对象地址一直相等
        //说明只有 ?=才会正常装箱,而 = 则是直接赋值
        //还要注意的是-127-128在JVM中是缓存的,所以无论是否装箱都会相等,指向相同的内存地址
        println(box1 == box2)
        println(box1 === box2)
        println(a === box1)
        println(a === box2)

        println(a.javaClass)
    

    //类型检查和自动转型   (Int? 表示为如果返回值不是Int,会返回空)
    fun getStringLenght(obj: Any): Int? 
        if (obj is String) 
            // 做过类型判断以后,obj会被系统自动转换为String类型
            return obj.length
        

        //在这个分支中
        if (obj !is Int) 
            return null
        
        //这里被转为了Int型
        return obj

        //甚至可以在同一个表达式中进行转换,这里可以看到obj.length == 2中obj已经成为String类型
        if (obj is String && obj.length == 2) 
            return obj.length
        

        //这里的obj仍然是Any类型
        return null
    

    //区间算法
    fun interval() 
        //输出1234
        for (i in 1..4) print(i)
        //什么都不输出
        for (i in 4..1) print(i)

        //等同于 1 <= i && i <= 10
        var i: Int = 2
        if (i in 1..10) 
            println(i)
        

        //使用step指定步长
        for (i in 1..4 step 2) println(i) //输出13

        for (i in 4 downTo 1 step 2) println(i) //输出42

        //使用utils 函数排除结束元素
        for (i in 1 until 10) print(i)
    




android:kotlin详细入门学习指南-基础语法(代码片段)

Android:Kotlin详细入门学习指南-基础语法(一)本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Kotlin被Google官方认为是Android开发的一级编程语言自2019年GoogleI/O以来,Kotlin就成为了Android移动开发的首选。... 查看详情

android:kotlin详细入门学习指南-类和对象(上)-基础语法(代码片段)

本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-类和对象-基础语法(四)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习... 查看详情

android:kotlin详细入门学习指南-类和对象(下)-基础语法(代码片段)

本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-类和对象(下)-基础语法(五)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学... 查看详情

android:kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(代码片段)

本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-包-控制流-返回与跳转-基础语法(三)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详... 查看详情

kotlin基础语法学习笔记(代码片段)

Kotlin简介Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度... 查看详情

android:kotlin详细入门学习指南-函数-基础语法(代码片段)

本人也是在初学Kotlin,如有错误,请帮忙指出,持续更新Android:Kotlin详细入门学习指南-函数-基础语法(六)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-... 查看详情

kotlin基础学习(代码片段)

...就对这本书进行了学习。在这本书中,由于谷歌大力推广kotlin语言,将其作为android开发的首推语言,本书也遵循了谷歌的推广,因此我就跟着书本学习了基本的Kotlin语法,当作记录笔记了。变量和函数变量在Koltin中的变量定义... 查看详情

字节内部超全kotlin学习笔记,快速上手kotlin开发,基础+实战+源码,手把手带你吃透kotlin语法与协程。(代码片段)

目前市面上主流的App和库,大都是使用Kotlin语言开发的,在PlayStore的前1000个应用程序中有80%以上使用Kotlin。这也意味着,对于Android应用开发者来说,仅仅掌握Java是不够的,你还应该学习Kotlin,才能追上技... 查看详情

python入门基础学习详解二(代码片段)

...学点。基础语法可以参考我前面写的学习笔记:Python入门基础学习详解一具体细分可以参考一下:Python入门(一)基础语法python入门(二)字符串Python入门 查看详情

android开发语言——kotlin学习笔记(代码片段)

Kotlin本Blog是我学习《Android第一行代码-第三版》的学习笔记,将会不定期断更持续更新。(默认大家都和我一样学过C++或Java的基础语法)。Kotlin简介在Android诞生的前几年中,Java一直是Android的主要开发语言。在2017年&#... 查看详情

kotlin小笔记kotlin的基本语法(代码片段)

本文目录kotlin学习-基本语法1.简介2.运行3.逻辑控制1.if条件语句2.when条件语句循环语句4.面向对象5.接口6.可见修饰符7.数据类8.单例类kotlin学习-基本语法1.简介对比java1.语法简洁,代码量少2.语法高级3.语言安全性。杜绝空指针... 查看详情

kotlin快速入门:基础语法类与继承集合(代码片段)

参考书籍:《AtomicKotlin》,全英文,读起来慢,但是写得很详细,没有任何语言基础的也能看懂《第一行代码Android第三版》,第二章,有java基础的看一看就会了Kotlin中文文档,很详细,可以当... 查看详情

kotlin快速入门:基础语法类与继承集合(代码片段)

参考书籍:《AtomicKotlin》,全英文,读起来慢,但是写得很详细,没有任何语言基础的也能看懂《第一行代码Android第三版》,第二章,有java基础的看一看就会了Kotlin中文文档,很详细,可以当... 查看详情

java核心基础(30天入门)笔记(代码片段)

Java核心基础30天入门1Java语言概述1.2计算机编程语言介绍2Java基本语法2.1Java基本数据类型2.1数组3面向对象3.1Java语言的基本元素:类和对象3-7面向对象特征之一:封装与隐藏尚硅谷宋红康)1Java语言概述Java基础是学习JavaEE、... 查看详情

b站学习vue入门笔记(代码片段)

学习来源–>传送门—>【狂神说Java】Vue最新快速上手教程通俗易懂ml1.前端分析2.试试写个基础vue程序3.Vue的基本语法3.1`v-bind`指令:用来绑定元素特性3.2`v-if``v-else-if``v-else`指令,条件判断3.3`v-for`循... 查看详情

kotlin语法入门篇章(代码片段)

Java和Kotlin数据类型对比表Java基本数据类型Kotlin对象数据类型数据类型说明intInt整形longLong长整型shortShort短整形floaFloat单精度浮点型doubleDouble双精度浮点型booleanBoolean布尔型charChar字符型byteByte字节型 点击右侧绿色按钮运行函... 查看详情

kotlin语法学习(代码片段)

文章目录Kotlin语法学习(二)面向对象编程类和对象继承和构造函数接口访问修饰符数据类和单例Kotlin语法学习(二)面向对象编程类和对象创建一个Person类openclassPerson/***姓名*/varname=""/***年龄*/varage=0/***人的吃饭方法*/fune... 查看详情

css入门学习笔记(代码片段)

我是目录标题一、css语法规范:二、css基础选择器:1、标签选择器:2、类选择器:3、id选择器:4、通配符选择器:三、CSS字体属性:1、文本字体:2、字体大小:3、字体粗细:4、文本样式... 查看详情