kotlin中的初始化问题纪录
1. init 代码块的顺序问题
init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。
2. init代码块之中的函数问题
下面是一段错误的代码:
class mkotlin{val info:Stringinit {getInfoMethod()info ="adaddddd"}fun getInfoMethod() = println("info 的值 ${info}")
}
fun main(){mkotlin().getInfoMethod()}
错误原因:
mkotlin().getInfoMethod() 中的第一个括号 = 调用mkotlin的主构造函数。
主构造函数会先调用init代码块。此时getInfoMethod() 先于info初始化。
3. 初始化陷阱
下面是一段会崩溃的代码。无法取得.length()的值的。
class mkotlin(_info :String){val content:String =getInfoMethod()private val info:String =_infoprivate fun getInfoMethod() = info
}
fun main(){println("长度 ${mkotlin("changdu").content.length}")}
问题的原因:
1.mkotlin("changdu") 调用主构造函数
2. content访问getInfoMethod 方法,获取info。----》info还没有来的及初始化,无法确保info一定会有值
所以info放到最前面。
所有类成员都放到最前面去
相关文章:
kotlin中的初始化问题纪录
1. init 代码块的顺序问题 init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。 2. init代码块之中的函数问题 下面是一段错误的代码: class mkotlin{val info:Stringinit {getInfoMethod()info "adad…...
Web中的转发与重定向
转发与重定向 一、转发和重定向的概念1.转发2.重定向 二、JavaWeb 中的转发和重定向三、SpringMVC 中的转发和重定向1.转发(1) 默认的方式(2) 完整的方式 2.重定向 四、总结 一、转发和重定向的概念 在 Web 应用中,转发和重定向都是用于将请求从一个页面传递到另一…...
交叉注意力融合时域、频域特征的FFT + CNN-Transformer-CrossAttention轴承故障识别模型
目录 往期精彩内容: 前言 1 快速傅里叶变换FFT原理介绍 第一步,导入部分数据 第二步,故障信号可视化 第三步,故障信号经过FFT可视化 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 3 交叉注意力机制 …...
STM32读取MPU6050数据并通过角度值控制舵机运动(STM32、GY-521 MPU6050、SG90舵机、MG946舵机)
通过STM32F103C8T6读取MPU6050数据控制舵机运动(STM32、GY-521 MPU6050、SG90舵机、MG946舵机) 最终现象一、MPU6050数据读取二、舵机控制原理①什么是PWM?②STM32F103C8T6如何生成PWM?③控制舵机需要什么样的PWM波? 三…...
Unity_Playable工具使用
Unity_Playable工具使用 目录 Unity_Playable工具使用 1. Default Playables(Timeline扩展) 2. PlayableGraph Visualizer&#x...
Flutter canvas 画一条波浪线 进度条
之前用 Flutter Canvas 画过一个三角三角形,html 的 Canvas 也画过一次类似的, 今天用 Flutter Canvas 试了下 感觉差不多: html 版本 大致效果如下: 思路和 html 实现的类似: 也就是找出点的位置,使用二阶…...
Java技术栈 —— Spring MVC 与 Spring Boot
参考文章或视频链接[1] Spring vs. Spring Boot vs. Spring MVC[2] Key Differences Between Spring vs Spring Boot vs Spring MVC...
跟着cherno手搓游戏引擎【16】Camera和Uniform变量的封装
相机封装: OrthographicCamera.h: #pragma once #include <glm/glm.hpp> namespace YOTO {class OrthographicCamera{public:OrthographicCamera(float left,float right , float bottom,float top);const glm::vec3& GetPosition()const { return m_Pos…...
微服务中间件 RabbitMq学习
1、为什么需要Mq 例如在用户注册业务中,用户注册成功后 需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式;2.并行的方式 ; 假设三个业务节点分别使用50ms,串行方式使用时间150ms,并行使用时间10…...
3D Gaussian Splatting-实时辐射场渲染技术
引用自:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_high.pdf 概述: 该论文介绍了一种用于实时辐射场渲染的3D高斯点渲染技术。 其基本原理是: 一:首先从SfM校准的图像及其对应的稀疏点云…...
vue中nextTick()
在 Vue.js 中,nextTick() 是一个非常有用的方法,用于在下一个 DOM 更新循环结束后执行延迟回调。这在你需要读取或写入刚刚更新的 DOM 时非常有用。 下面是一个简单的示例代码,用于解析 nextTick() 的用法: <template> &…...
Redis 布隆过滤器
布隆过滤器 这一篇文章主要是记录布隆过滤器的使用和认识 主要参考了如下的blog https://blog.csdn.net/weixin_42972832/article/details/131211665 他讲的还不错 简单的来说,布隆过滤器,实际上就像是一个集合,拿redis的key来举例来说,布隆过滤器的设置就是去过滤不属于redi…...
中国的茶文化:现代生活中的茶文化
中国的茶文化:现代生活中的茶文化 引言 在现代社会的快节奏生活中,茶文化并未随时间流逝而褪色,反而以其独特的方式融入了全球各地人们的日常生活。它超越了饮品本身的范畴,成为一种连接历史、人文与现代生活方式的艺术形式。本文…...
Python正则表达式语法
正则表达式是一种强大的文本处理工具,它可以用来搜索、匹配和替换特定的字符模式。在Python中,正则表达式常常被用于处理字符串数据,例如文本搜索、数据提取、格式验证等任务。本文将深入介绍Python中正则表达式的语法,帮助读者全…...
C++核心编程:文件操作 笔记
5.文件操作 程序运行时产生的数据都属于临时数据,程序一旦允许结束都会被释放。通过文件可以将数据持久化 C中对文件操作需要包含头文件<fstream> 文件类型分为两种: 文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本…...
ElementUI组件:Button 按钮
ElementUI安装与使用指南 Button按钮 点击下载learnelementuispringboot项目源码 效果图 el-button.vue页面效果图 项目里el-button.vue代码 <script> export default {name: "el_button",// 注意这里的名称不能和 router inex.js里的name一样methods: {s…...
#RAG|NLP|Jieba|PDF2WORD# pdf转word-换行问题
文档在生成PDF时,文宁都发生了什么。本文讲解了配置对象、resources对象和content对象的作用,以及字体、宇号、坐标、文本摆放等过程。同时,还解释了为什么PDF转word或转文字都是一行一行的以及为什么页眉页脚的问题会加大识别难度。最后提到了文本的编码和PDF中缺少文档结构标…...
solr的原理是什么
1 Java程序里如果有无限for循环的代码导致CPU负载超高,如何排查? 排查Java程序中由于无限循环导致的CPU负载过高的问题,可以按照以下步骤进行: 资源监控: 使用系统命令行工具(如Linux上的top或htop…...
【安装指南】nodejs下载、安装与配置详细教程
目录 🌼一、概述 🍀二、下载node.js 🌷三、安装node.js 🍁四、配置node.js 🌼一、概述 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建可扩展的网络应用程序。Node.js 使用事件驱动、…...
Mobileye CES 2024 自动驾驶新技术新方向
Mobileye亮相2024年国际消费类电子产品展览会推出什么自动驾驶新技术? Mobileye再次亮相CES,展示了我们的最新技术,并推出了Mobileye DXP--我们全新的驾驶体验平台。 与往年一样,Mobileye是拉斯维加斯展会现场的一大亮点,让参观者有机会见证我们对自主未来的愿景。 在…...
MDK Middleware网络组件的嵌入式安全防护解析
1. MDK Middleware网络组件的安全特性解析在嵌入式系统开发中,网络安全往往是最容易被忽视却又至关重要的环节。作为Keil MDK开发环境的核心组件,Middleware Network为Cortex-M系列微控制器提供了轻量级TCP/IP协议栈实现。不同于桌面级操作系统自带的网络…...
Python自动化登录:破解验证码与Cookie会话维持实战
1. 这不是“绕过验证”,而是理解会话机制的起点很多人看到“跳过验证码登陆”第一反应是:这合规吗?会不会被封?其实这个问题本身就暴露了一个关键误区——我们不是在“绕过”什么,而是在还原真实用户登录时浏览器自动完…...
ARM嵌入式C#开发实战:基于SkiaSharp的低延迟GUI实现
1. 这不是玩具,是ARM嵌入式系统能力的“压力测试仪”很多人第一次听说“在ARM开发板上跑C#游戏”,第一反应是:这能行?C#不是Windows桌面和服务器的语言吗?Mono?.NET Core?ARM板子连图形驱动都配…...
ShiroAttack2实战指南:从漏洞检测到内存马注入的完整揭秘
ShiroAttack2实战指南:从漏洞检测到内存马注入的完整揭秘 【免费下载链接】ShiroAttack2 shiro反序列化漏洞综合利用,包含(回显执行命令/注入内存马)修复原版中NoCC的问题 https://github.com/j1anFen/shiro_attack 项目地址: https://gitc…...
【云计算学习之路】学习Centos7系统:服务搭建(VSFTP)
FTP简介及快速构建VSFTP服务器FTP简介及快速构建VSFTP服务器一、前言二、FTP服务核心简介2.1 FTP基本概念2.2 FTP两种工作模式1. 主动模式(Active Mode)2. 被动模式(Passive Mode)2.3 VSFTP服务核心优势三、实验环境预处理3.1 网络…...
告别黑屏!手把手教你用QNX Screen API在8295座舱屏上显示第一个窗口
从零到一:QNX Screen图形开发实战指南 1. 初识QNX Screen图形系统 在车载信息娱乐系统和数字座舱开发领域,QNX Screen图形系统扮演着至关重要的角色。作为黑莓QNX实时操作系统中的核心图形框架,它提供了高性能、低延迟的图形显示能力…...
圆桌探讨AI原生人才:从定义、来源到培养留存,为企业老板提供实战手册
嘉宾介绍真正AI原生的人或不来现场,对于积极转型的20%人群,有实战手册可用于找到、培养并留住他们。目前,仅1%的企业是AI原生企业,20%积极拥抱变化,80%在苦苦挣扎,人才情况也类似。一场圆桌深入探讨企业“赶…...
Fortune.js未来路线图:即将推出的功能和改进终极指南
Fortune.js未来路线图:即将推出的功能和改进终极指南 【免费下载链接】fortune Non-native graph database abstraction layer for Node.js and web browsers. 项目地址: https://gitcode.com/gh_mirrors/fo/fortune Fortune.js作为一个创新的非原生图数据库…...
速学linux命令教程
概述:用户使用shell跟内核交互,Linux中有很多命令,不同的命令有不同的功能。多个命令合起来可以完成一个大的功能。命令很多我们不可能记得每条命令的用法。 所以,我们必须有一种方法来快速知道一个命令是如何使用的,…...
AI Agent在体脂管理中的临床级精度突破:基于3276名受试者的双盲对照试验(FDA Class II类器械预审中)
更多请点击: https://kaifayun.com 第一章:AI Agent在体脂管理中的临床级精度突破:基于3276名受试者的双盲对照试验(FDA Class II类器械预审中) 临床验证设计与核心指标达成 本研究采用多中心、随机、双盲、平行对照…...
