首页 > 其他分享 >安卓笔记2——kotlin不写必忘的基本语法

安卓笔记2——kotlin不写必忘的基本语法

时间:2025-01-04 20:55:49浏览次数:1  
标签:10 num1 num2 Int kotlin 安卓 val 必忘 name

说明

可能会忍不住说一些C#和Rust相关的事情,但这是个人笔记,允许先入为主,节外生枝。
下文的最优写法只是相对于上下文环境

关键字、语法(糖)

一行代码省略函数体

有点像C#的 属性get函数写法的 =>

fun largerNumber(num1: Int, num2: Int): Int = max(num1, num2)

推导后可省略返回值类型

fun largerNumber(num1: Int, num2: Int) = max(num1, num2)

if可以将每个条件最后一行代码作为返回值

这有点像Rust

fun largerNumber(num1: Int, num2: Int): Int {
    return if(num1 > num2) {
        num1
    } else {
        num2
    }
}

相对最优写法

fun largerNumber(num1: Int, num2: Int): Int {
    return if(num1 > num2) {
        num1
    } else {
        num2
    }
}

when

也有点像Rust
匹配值 -> {执行逻辑}

when (num) {
    // 判断类型
    is Int ->   ...
    // 判断值
    1, 2 ->    ...
    in 1.. 10 ->    ...
    // 其它
    else -> ...
}

无参写法

when {
    name == "王旭林" -> 86
    name == "陈惠军" -> 77
    name == "黄达" -> 95
    name == "周毅" -> 100
    else -> 0
}

区间

val range1 = 0..10   // 包含0也包含10
val range2 = 0 until 10 // 包含0 但不包含10
val range3 = 10 downTo 1 // 包含10也包含1

for

for(i in 0 until 10 step2)  // 设置步长

面向对象部分

实例化

val p = Person()

open允许继承

open class Person{...}  // 该类可以被继承

class Student : Person {...}    // Student类继承Person类

主构造函数

感觉就是只能用来初始化一些字段(不考虑init块)

// 写法1
class Student(name: String){
    val name: String

    init{
        this.name = name
    }
}

// 写法2
class Student(val name: String){}   // 相当于直接定义了 val name: String 更简洁

标签:10,num1,num2,Int,kotlin,安卓,val,必忘,name
From: https://www.cnblogs.com/209jkjkjk/p/18652132

相关文章

  • uniapp [安卓苹果App端] - 解决uni.scanCode扫码黑屏报错问题,uniApp app平台真机运行
    前言关于此问题网上的教程都无法解决,如果您的报错信息与我相似,即可解决。在uni-appApp端(安卓APP|苹果APP)开发中,解决使用uni.scanCode调起摄像头扫码黑屏问题,uniAPP真机调试扫码一片黑并且可能有报错,有时候连续扫码时首次没问题但第二次就会黑屏没反应(退出去再进来就......
  • vscode GDB远程调试安卓
    如果是比较新的androidndk的版本,建议使用lldb进行调试,参考:vscodelldb远程调试-OpenFDE-OpenFDEDocs,将lldbserverpush到移动端,开启端口调试,配置launch.json即可。我调试的项目使用的是ndk-r17c,该版本的ndk没有lldb调试,只有gdb调试。在prebuilt目录下,使用find-namegdbse......
  • 安卓笔记1——开启视图绑定View Binding功能
    前言只是初学者笔记,有错误望指正。正文开启特性参考谷歌开发者文档,首先要在gradle中开启特性android{...buildFeatures{viewBinding=true}}将为每个布局文件生成Pascal驼峰命名法+"Binding"的绑定类,例如main_layout.xml-->MainLayoutBindi......
  • 记录学Delphi安卓编程过程中的一个坑
    记录学Delphi安卓编程过程中的一个坑以下这段代码在win10和在安卓下的执行顺序有区别:abcde为序号:在win中,顺序是abcdef,fs在修改后能保存,在安卓下,顺序是aefbcd,所以fs没能在修改后保存。a:TDialogService.MessageDialog('用户:'+user+'已经存在,但你输入的密码与保存的密码不相同,......
  • Kotlin在医疗大健康域的应用实例探究与编程剖析(上)
    一、引言1.1研究背景与意义在当今数字化时代,医疗行业正经历着深刻的变革。随着信息技术的飞速发展,尤其是人工智能、大数据、物联网等新兴技术的广泛应用,医疗行业数字化转型已成为必然趋势。这种转型旨在提升医疗服务的效率和质量,优化医疗资源配置,为患者提供更加便捷、个性......
  • 解决uniapp安卓打包targetSdkVersion报错
    解决GooglePlay版本检查问题的实用方案。Error:GooglePlayrequiresthatappstargetAPIlevel33orhigher.[ExpiredTargetSdkVersion]问题描述打包时遇到以下错误:Error:GooglePlayrequiresthatappstargetAPIlevel33orhigher.[ExpiredTargetSdkVersion]......
  • Kotlin 入门
    Kotlin语言简介在Android系统诞生的前9年时间里,Google都只提供了Java这一种语言来开发Android应用程序,在Android1.5系统中Google引入了NDK功能,支持使用C和C++语言来进行一些本地化开发.Google在2017年的I/O大会上宣布,Kotlin正式成为Android......
  • uniapp - 解决安卓APP运行到真机显示未检测到手机或模拟器,HBuilderX真机调试未检测到
    前言关于此问题网上的教程都无法解决,如果您的情况与我相似,即可解决。在uniappApp项目开发中,解决开发app运行到真机时显示“没有检查到设备”将项目运行到Android手机真机调试却检测不到,实际上已经插上USB数据线了,也开启进入了开发者模式怎么调也识别不到,非常恶心的......
  • 安卓工具
    DownloadGradle:implementation'com.blankj:utilcode:1.26.0'//ifuuseAndroidX,usethefollowingimplementation'com.blankj:utilcodex:1.26.0'1234APIsActivity相关-> ActivityUtils.java -> DemogetActivityByView......
  • Java方法链调用以及在JVM和安卓DalvikVM下的区别
    目录方法链字节码与Smali下的编译结果总结方法链方法链(MethodChaining),也被称为命名参数法,是在面向对象的编程语言中调用的调用多个方法的通用语法。每一个方法返回一个对象,在一个单一的声明里,方法链省去了中间变量的需要。当需要构建一个对象或者设置其初始属性时,往往通过......