kotlin-变量和常量

Marin说PCB之LPDDR5的布线注意事项--01 以上就是本期所有内容了,有些是通用的LPDDR5的设计准则,有的是针对单板的设计规则,严格意义说是没有哪一种规则是完全适用的LPDDR5的 通用规则的,不同的单板可能板厚,板材,层数,SOC以及DDR的型号都是不同的,一般的做法就是严格按照SOC手册上的LPDDR5的要求加上仿真同事给的建议修改优化就好了,我们下期文章不见不散。我们知道想要做好一个LPDDR颗粒,需要考虑的是因素有很多例如,电源完整性,信号完整性,层叠的设计,布局的摆放,布线的合理规划,去耦电容的摆放等等。 阅读详情

1.变量

kotlin 支持类型推断

//可变变量
var str = "Android"
//不可变变量,相当于java中用final修饰的变量
val str = "Android"

2.常量

//1.声明在顶层
const val ANDROID = "Android"
class xxx{
}
//2.object
object xxx{
   const val ANDROID = "Android"
}
//3.伴生对象
class xxx{
    companion object{
        const val ANDROID = "Android"
    }
}

3.伴生对象和顶层成员的实现

const val CONST_OBJECT = 0

class TopLevelFunction {

    companion object {
        const val CONST_OBJECT = 0
    }
}

转成 java

// TopLevelFunction.java
package com.example.firstdemo;

import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import org.jetbrains.annotations.NotNull;

@Metadata(
   mv = {1, 8, 0},
   k = 1,
   d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\u0018\u0000 \u00032\u00020\u0001:\u0001\u0003B\u0005¢\u0006\u0002\u0010\u0002¨\u0006\u0004"},
   d2 = {"Lcom/example/firstdemo/TopLevelFunction;", "", "()V", "Companion", "app_debug"}
)
public final class TopLevelFunction {
   public static final int CONST_OBJECT = 0;
   @NotNull
   public static final Companion Companion = new Companion((DefaultConstructorMarker)null);

   @Metadata(
      mv = {1, 8, 0},
      k = 1,
      d1 = {"\u0000\u0012\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000¨\u0006\u0005"},
      d2 = {"Lcom/example/firstdemo/TopLevelFunction$Companion;", "", "()V", "CONST_OBJECT", "", "app_debug"}
   )
   public static final class Companion {
      private Companion() {
      }

      // $FF: synthetic method
      public Companion(DefaultConstructorMarker $constructor_marker) {
         this();
      }
   }
}
// TopLevelFunctionKt.java
package com.example.firstdemo;

import kotlin.Metadata;

@Metadata(
   mv = {1, 8, 0},
   k = 2,
   d1 = {"\u0000\b\n\u0000\n\u0002\u0010\b\n\u0000\"\u000e\u0010\u0000\u001a\u00020\u0001X\u0086T¢\u0006\u0002\n\u0000¨\u0006\u0002"},
   d2 = {"CONST_OBJECT", "", "app_debug"}
)
public final class TopLevelFunctionKt {
   public static final int CONST_OBJECT = 0;
}

伴生对象是利用内部类实现的
顶层成员是重新声明了一个类
(我在2个不同的文件,声明同一个顶层成员,发现不可以)

调用方式

 //顶层函数
 CONST_OBJECT
 //伴生对象
 TopLevelFunction.CONST_OBJECT

4.object

object ConstObject {
    const val CONST_OBJECT = 0
}
package com.example.firstdemo;

import kotlin.Metadata;
import org.jetbrains.annotations.NotNull;

@Metadata(
   mv = {1, 8, 0},
   k = 1,
   d1 = {"\u0000\u0012\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\bÆ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000¨\u0006\u0005"},
   d2 = {"Lcom/example/firstdemo/ConstObject;", "", "()V", "CONST_OBJECT", "", "app_debug"}
)
public final class ConstObject {
   public static final int CONST_OBJECT = 0;
   @NotNull
   public static final ConstObject INSTANCE;

   private ConstObject() {
   }

   static {
      ConstObject var0 = new ConstObject();
      INSTANCE = var0;
   }
}

调用

ConstObject.CONST_OBJECT

总结

伴生对象的方式适合类内部使用的常量 (类内部的私有常量)
顶层函数和object声明的常量适合多个类之间的调用 (Intent传递的Key)

从0到1构建数据分析AI Agent:数据采集、洞察生成与报告自动化 在企业数字化转型的今天,数据分析师80%的时间被消耗在重复取数、数据清洗、报表排版等低价值劳动上,真正用于深度业务洞察和决策支持的时间不足20%。本文将从核心概念、技术原理、代码实现、落地实践全维度,教你从0到1搭建一套完整的数据分析AI Agent系统,实现「用户用自然语言提需求→Agent自动采集多源数据→AI自动挖掘业务洞察→自动生成符合业务要求的多格式报告」的全链路自动化,平均可将需求响应速度从天级压缩到分钟级,释放70%以上的分析师人力成本。 阅读详情

相关推荐

【第4章 光模块实测方法总结(环境搭建、眼图测试、接收测试、注意事项)】

本文系统介绍了光模块测试的完整流程与关键要点,涵盖低速模块到3.2T PAM4超高速模块的测试方法。内容包括:1)测试环境搭建(光路/电路要求);2)核心测试项目(眼图分析、接收灵敏度/饱和测试、误码压力测试);3)PAM4专项测试(TDECQ、RLM线性度等);4)可靠性测试(温循、电压、老化);5)八大注意事项(如禁止脏端面测试、长短距混插等)。特别强调高速模块对测试环境的高敏感性,需重点关注波形质量而非单纯光功率,并需进行严格压力测试才能暴露潜在问题。

学无止境 439

Kotlin中的伴生对象

伴生对象

Z_CAIGOU的博客 425

头歌操作系统2023春季课堂练习2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?回答问题:当第一行 0/1 字符全部输出完毕的时候一共发生了几次时钟中断,即第一行完全填满时 jiffies 记录的已发生次数为多少?本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?2.此时 bochs 虚拟机输出的 0/1 字符串是什么?(只填写数字,不填写空格!根据相关知识进行实际操作,一直输入 c 直到 0/1 将第一行完全填满。

weixin_64821608的博客 8127

在Kotlin中保持常数

解压Kotlin 如果您已经使用Kotlin一段时间,您应该注意到该语言是一个精彩的模板缩小工具。Kotlin可以轻松地用简单的代码表达复杂的东西,编译器做肮脏的工作。一个很好的例子是data class功能,它允许您轻松地用几行Kotlin替换几行Java代码。但是,众所周知,用大权力来承担很大的责任。使Kotlin编译器不会产生次优字节码并不困难,特别是如果您在使用Kotlin for And

qq_30621333的博客 474

AlphaFold3实战:用它预测抗体结构,我的CDR H3环RMSD降到了2Å以内

本文详细介绍了如何利用AlphaFold3(AF3)高精度预测抗体结构,特别是CDR H3环的建模,其RMSD可降至2Å以内。通过实战演示从序列输入到结构优化的全流程,包括参数配置、置信度指标解读及结果分析,帮助研究人员快速掌握AF3在抗体药物研发中的应用。

weixin_29224529的博客 187

【学习体会】Lighttools8.4.0:软件基本使用+光度学基本概念+系统初始设置

关于Lighttools8.4.0软件的安装教程,详见我的另一篇博文:【软件安装】win10下Lighttools8.4.0(64)光学系统建模软件的安装教程 在本文中,我们将学习到,光度学的基本概念、系统初始设置、物体模型坐标的使用方法、简单光学系统实例、系统浏览器的作用和内容、设置虚拟相机并渲染视图中的图像、仿真结果3D显示等。 如果有其他感兴趣的内容但是我又没有写的,欢迎在评论区留言! 光度学的基本概念 软件的基本介绍 参考博文:https://www.docin.c...

LeonJin的博客 2万+

kotlin学习笔记:object关键字介绍与java中的静态变量与静态方法的实现以及@JvmField和@JvmStatic的使用

在java中,静态变量和静态方法是我们经常需要用到的东西,但是我们在kotlin中,并不能找到static关键字。其实目前在kotlin中,也的确是static概念的,那么我们该如何在kotlin中实现静态变量和静态方法呢?这时就要用到kotlin中的object关键字了,下面文章的内容会将object的用法和静态的实现一起详细讲解 Tip: 想要自己验证本文内容的小伙伴,请看文章《Kotlin学习笔记:如何将kotlin编译成java(必备小技能)》 推荐Kotlin学习笔记:object关键字详.

Tiger的专栏 1412

SpringBoot项目实战:5分钟搞定豆包大模型API接入(附完整代码)

本文详细介绍了如何在SpringBoot项目中快速集成豆包大模型API,仅需5分钟即可完成。从环境准备、依赖配置到核心服务封装和控制器层实现,提供了完整的代码示例和实战技巧,帮助开发者高效接入大模型能力,提升智能客服等应用的开发效率。

weixin_30566063的博客 439

kotlin 静态常量声明

1、创建class2、定义 companion object{}3、增加常量其他地方直接 . 变量名调用

yinianjian2017的博客 1万+

即插即用系列(代码实践)| 2025 Strip R-CNN:大尺寸条形卷积——遥感目标检测新SOTA,专治细长目标(桥梁、船只)

摘要: 论文《Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection》针对遥感图像中细长目标(如桥梁、道路)检测难题,提出创新性解决方案。通过设计StripBlock模块,将传统方形卷积核替换为大尺寸条形卷积(水平1×19与垂直19×1组合),有效捕获长距离空间特征,同时减少背景噪声。结合CenterPooling增强目标中心定位,该模块可即插即用至现有网络,显著提升遥感检测任务(如DOTA数据集)的精度。代码已开源,

分享顶会顶刊论文即插即用模块 189

Android System UI 深度解析:从架构演进到车载 / TV 场景的全维度定制

本文全面解析 Android System UI 的架构设计、功能演进及场景化定制,揭示其作为安卓系统核心交互层的技术特性与生态价值。

学无止境 1579

Kotlin基础——常量和变量

(1)变量 Java中的变量: int a=2; a=3; Kotlin中的变量: var a=2 a=3 (2)只读变量 Java中的只读变量: final int b=3; Kotlin中的只读变量: val b=3; (3)常量 Java中的静态常量: static final int b=3; Kotlin中常量: const val b=3; 已...

u010257931的博客 245

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android Kotlin变量、常量

Kotlin 变量、常量用法 基础用法 定义格式:关键字 变量名: 数据类型 = xxx 例: 在类中声明以及声明可空变量 类中声明变量 声明类的属性特点:必须初始化,如果不初始化,需使用lateinit关键字。 例: 声明可空变量 在java中,当我们定义一个变量是不需要关心是否为空,但在使用该变量时却需要判断是否为空,这是就会增加一定的代码量,而在kotlin中我们可以确定这个属性或变量一定不为空时,我们就用上面讲解到的去定义变量。否则就把它声明为可空变量。可空变量的特点:...

cc 1260

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Kotlin - 常量与变量

常量 Kotlin 中的常量使用 val 修改,一旦定义值后"不可再修改",常量类型分 2 种: 运行时常量(val):编译期不能确定它的值,代码中会保留变量对它的引用。 编译期常量(const val):编译期就知道值,并且会把代码中所有对它的引用都替换成它的值。 下面我们来举例看看,这两者在代码层面上的区别到底是什么。 运行时常量(val) 这是一段很简单的 Kotlin 代码,先定义一个常量 FINAL_NAME,再定义一个变量 myName 引用常量 FINAL_NAME: val FINAL_

GitLqr的博客 982

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

kotlin 变量和常量

变量 如果你是一个java开发者你会觉得kotlin声明变量的方式非常的别扭,但是如果你是一个js开发者你就会觉得kotlin声明变量的方式非常熟悉,kotlin中声明变量必须使用var 和val关键字 var :声明的变量表示可变变量,可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样 val:声明一个只读变量,相当于java中的final变量,一个va...

weixin_30262255的博客 128

Kotlin变量和常量

这篇博客主要介绍了Kotlin中的变量和常量的声明,以及可空变量的使用,成员变量的一些特殊情况的处理

尘心平的博客 904

Kotlin中的变量、常量、const

变量和常量 在Kotlin中使用val和var关键字来声明变量,其语法如下: val|var 变量名[: 变量类型][= 值] val关键字声明一个常量,赋值以后不再修改。 var关键字声明一个变量,可以重复赋值。 下面声明一个字符串变量a和一个字符串常量b,并设置初始值 var a : String = "a";//声明一个变量a,并设置初始值。 val b : String = "b";//声...

yumodev 6330

kotlin的val声明的变量是常量吗

比如在Java中,常量通常指的是用final关键字修饰的静态变量,并且需要在编译时就能确定其值,即编译时常量。而Kotlin中的val虽然也是不可变的,但它的值并不一定是在编译时确定的。const关键字修饰的val才是编译时常量,必须声明在顶层或者伴生对象中,并且其值必须是基本类型或者String。例如,val适合用于在对象生命周期内不可变的变量,而const val则用于全局的、编译时确定的常量。需要说明val的不可变性是运行时的保证,而并非编译时的强制,除非使用const val。

yzpbright的博客 685

Kotlin系列之变量和常量

标签: Kotlin      变量      属性     var与val区别      自定

Mikyou的专栏 3187

2.1 Kotlin常量与变量

常量 常量、顾名思义就是在预期范围内恒定不变的量,生活中的例子很多,比如你的性别,在某个固定的范围时间区域内,就是固定的属于常量,当然你非要去泰国就另说了。 常量的写法: val <标识符> : <类型> = <初始化值> val:是Kotlin的关键字,定义常量的固定用法 “=”:意思是赋值。 标识符:就是常量名称,不能以数字下划线开头,通常我们...

不一样的烟火 277

Kotlin实战指南二:变量、常量、静态常量

转载请标明出处:https://blog.youkuaiyun.com/zhaoyanjun6/article/details/87811333 本文出自【赵彦军的博客】 Kotlin初体验二:变量、常量、静态常量变量常量静态常量 变量 Java中的变量 public class App { private String name; //定义一个变量 } Kotlin中的变量,用 var...

赵彦军 6592

Kotlin变量,常量,注释

kotlin变量,常量,注释变量变量声明基础用法声明可空变量:后期初始化与延迟初始化后期初始化属性延迟初始化var 与 val 区别常量常量声明注释 变量 变量声明 kotlin变量的声明方式与Java中声明变量有很大的区别,而且必须使用var或val关键字。其中: var: 用此关键字声明的变量表示可变变量,即可读且可写。相当于Java中普通变量 val: 用此关键字声明的变量表示不可变变量,即可读且不可写。相当于Java中用final修饰的变量 基础用法 形式 :关键字 变量名: 数据类型 = x

lizhichao628的专栏 166

Kotlin 可变变量var、不可变变量val、常量修饰const

可变变量var,不可变变量val val 不是常量,是一个不可变变量,因为var与val最本质的区别是val不能有setter方法 var age: Int = 10 val name: String = "zhangyu" //不可变变量 var name1: String = "zy" var name2: String? = null //类型String后面加上?表示可以为null fun main() { //name1 = name2!! //name2可以为null,所以不能直接.

张雨的博客 1008

Kotlin 常量与变量

 val(value) 常量 val FINAL_HELLO_WORLD: String = "HelloWorld" //编译期不确定值。(仍可用反射等技术修改) const val FINAL_HELLO_WORLD2: String = "HelloWorld2" //编译期常量 var(variable) 变量  var helloWorld:String="Hello...

压缩疯雷的博客 232

Kotlin 变量,常量,注释

定义变量,常量 声明普通变量 Kotlin 中定义变量,常量跟Java中有很大区别, kotlin中必须使用var, val关键字修饰 定义变量: 变量可读可写, 定义后可重复赋值, 相当于Java中的普通变量 var <变量标识符>: <数据类型> = <初始化值> 定义常量: 常量可读不可写,一旦定义不能修改其值, 相当于Java中final修饰的常量 v...

weixin_34254823的博客 213

浅谈Kotlin语法篇之变量和常量(二)

这次所说的是Kotlin的变量和常量,主要会对以下内容做介绍: 1、变量基本定义 2、var和val的区别 3、智能类型推断 4、自定义属性访问器 5、var是可变的而val一定是不可变的吗 一、Kotlin与Java中变量和常量 使用对比 1、在Java中定义一个变量和常量 public String name = "Mikyou";//定义变量 public final int ...

android开发笔记 259
上一篇: Android 接收 text/event-stream 数据
下一篇: Kotlin-作用域函数
Client_Block
博客等级 码龄11年 33粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值