鸿蒙开发——1.ArkTS声明式开发(UI范式基本语法)
鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法
- @[TOC](鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法)
- 一、ArkTS的基本组成
- (1)核心概念(像贴标签一样控制组件)
- (2)基础工具包(现成的积木块)
- (3)高效开发技巧(进阶工具箱)
- (4)常见误区提醒及类比理解
- 二、声明式UI描述( 给组件"搭积木"的入门指南)
- (1)🧱创建组件(像拼乐高一样简单)
- (2)🎨配置属性(给组件穿衣服)
- (3)🕹️配置事件(给按钮装开关)
- (4)🎁 配置子组件(俄罗斯套娃)
- (5)💡避坑指南
- 三、🧩自定义组件的通俗指南
- (1)什么是自定义组件?
- (2)为什么需要自定义组件?
- (3)快速入门案例
- (4)🛠️ 组件建造说明书
- 组件结构三要素
- 装饰器的作用
- 构建规则(易错点)
- (5)🎨 样式与交互技巧
- 链式调用设置样式
- 组件样式继承的坑
- (6)⚠️ 常见问题急救包
- (7)🌰 实战案例:计数器组件
- 🚀 进阶技巧
鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法
- @[TOC](鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法)
- 一、ArkTS的基本组成
- (1)核心概念(像贴标签一样控制组件)
- (2)基础工具包(现成的积木块)
- (3)高效开发技巧(进阶工具箱)
- (4)常见误区提醒及类比理解
- 二、声明式UI描述( 给组件"搭积木"的入门指南)
- (1)🧱创建组件(像拼乐高一样简单)
- (2)🎨配置属性(给组件穿衣服)
- (3)🕹️配置事件(给按钮装开关)
- (4)🎁 配置子组件(俄罗斯套娃)
- (5)💡避坑指南
- 三、🧩自定义组件的通俗指南
- (1)什么是自定义组件?
- (2)为什么需要自定义组件?
- (3)快速入门案例
- (4)🛠️ 组件建造说明书
- 组件结构三要素
- 装饰器的作用
- 构建规则(易错点)
- (5)🎨 样式与交互技巧
- 链式调用设置样式
- 组件样式继承的坑
- (6)⚠️ 常见问题急救包
- (7)🌰 实战案例:计数器组件
- 🚀 进阶技巧
一、ArkTS的基本组成
(1)核心概念(像贴标签一样控制组件)
-
装饰器(给代码贴魔法标签)
• @Component:相当于给代码块贴个“可复用组件”标签。比如你写了个按钮样式,贴上这个标签后,整个程序都能重复使用这个按钮。• @Entry:相当于“主入口”标签,告诉系统:“这个组件是App启动时第一个显示的界面”。
• @State:相当于“自动刷新”标签。比如你在购物车数字上贴了这个标签,当数量变化时,界面会自动更新显示最新数值。
-
UI描述(像写菜谱一样写界面)
用简单直白的代码描述界面结构,比如:build() {Column() { // 竖着排列Text("你好!").fontSize(20) // 文字Button("点击我").onClick(() => { 操作代码 }) // 按钮} }
就像写菜谱说“先放文字,再放按钮”一样直观。
(2)基础工具包(现成的积木块)
-
系统组件(开箱即用的积木)
• 基础积木:文字(Text)、图片(Image)、按钮(Button)• 排列工具:
Column(竖排:像叠汉堡) Row(横排:像排队) Stack(叠放:像贴纸一样层层叠加)RelativeContainer(相对布局:支持容器内部的子元素设置相对位置关系,适用于处理界面复杂的场景,对多个子元素进行对齐和排列。子元素可以指定兄弟元素或父容器作为锚点,基于锚点进行相对位置布局。)
-
属性链式调用(像串珠子一样设置样式)
连续设置多个属性:Text("标题").fontSize(24) // 字号24.fontColor("#FF0000") // 红色.margin({top:10}) // 上方留10像素空白
就像给文字戴项链,一颗接一颗地加装饰。
-
事件绑定(给按钮装开关)
给组件添加交互功能:Button("提交").onClick(() => { 提交数据 }) // 点击事件.onLongPress(() => { 弹出菜单 }) // 长按事件
相当于给按钮装了两个触发器:短按和长按分别触发不同操作。
(3)高效开发技巧(进阶工具箱)
-
@Builder(打造自己的积木模具)
把常用的界面片段打包成模板:@Builder function RedButton(text:string) {Button(text).backgroundColor("#FF0000") } // 使用时直接调用 RedButton("危险操作")
相当于做了一个红色按钮的模具,随用随取。
-
@Styles/@Extend(批量改装修饰)
• 统一风格:给所有标题设置统一样式,类似于CSS中的类样式@Styles function titleStyle() {.fontSize(20).fontColor("#333") } Text("标题1").titleStyle()
• 扩展组件:给系统按钮添加圆角
@Extend(Button) function roundButton() {.borderRadius(8) }
-
状态样式(智能变装术)
根据组件状态自动切换样式:Button("登录").stateStyles({normal: { backgroundColor: "#EEE" }, // 默认灰色pressed: { backgroundColor: "#CCC" } // 按下变深灰})
就像按钮被按下时会“变色回应”你的操作。
(4)常见误区提醒及类比理解
- 装饰器顺序:@Entry必须放在最外层,像信封的收件人地址要写在最上面
- 状态管理:只有被@State标记的变量变化才会触发界面刷新,普通变量修改不会更新显示
- 链式调用:属性设置顺序有时会影响效果(比如先设宽度再设边距可能导致布局错位)
类比理解:
开发界面就像装修房子:
- 装饰器是各种功能标签(如“承重墙”“可拆卸隔断”)
- 系统组件是现成的家具(桌子、椅子)
- @Builder是自己设计的定制家具图纸
- 状态样式是智能家居系统(天黑自动开灯)
二、声明式UI描述( 给组件"搭积木"的入门指南)
(1)🧱创建组件(像拼乐高一样简单)
两种组装方式:
-
无参数组件(空手组装)
Divider() // 直接写组件名加空括号,就像拼一根直线
适合不需要额外参数的组件,比如分割线、空白间隔
-
有参数组件(带说明书组装)
// 图片必须带地址参数 Image('https://example.com/cat.jpg') // 相当于给图片框塞照片// 文字可以不带内容(显示空文本) Text() // 相当于一个隐形的文字占位符
参数小技巧:
- 可以插入变量或算式:
Image(this.userAvatar) // 使用变量里的图片地址 Text(`剩余次数:${5 - this.count}`) // 显示动态计算结果
(2)🎨配置属性(给组件穿衣服)
连续点选设置法:
Text('你好世界').fontSize(20) // 文字大小.fontColor('#FF0000') // 文字颜色.margin({top:10}) // 上方留10像素空白
就像给洋娃娃穿衣服:先穿裙子,再戴帽子,最后穿鞋子
颜色/样式快捷选项:
Text('特别提示').fontColor(Color.Red) // 使用预定义红色.fontWeight(FontWeight.Bold) // 直接选"加粗"模式
(3)🕹️配置事件(给按钮装开关)
箭头函数用法:
Button('点我抽奖').onClick(() => {this.luckyNumber = Math.random() // 点击后生成随机数})
相当于给按钮装了个"按下就执行"的魔法开关,箭头函数内部的this是词法作用域,由上下文确定。匿名函数可能会有this指向不明确问题,在ArkTS中不允许使用。
错误用法提醒:
// ❌ 不要用普通函数
Button('错误示例').onClick(function() {// 这里的this会指向错误的地方!})// ✅ 正确用箭头函数
Button('正确示例').onClick(() => {// 箭头函数自动绑定正确上下文})
(4)🎁 配置子组件(俄罗斯套娃)
容器组件用法:
Column() { // 创建一个垂直排列的容器Text('标题').fontSize(24) // 第一个子组件Divider() // 中间加分割线Image('logo.png').width(100) // 最后放图片
}
像往抽屉里放东西:先放书本,再放文具,最后放零食
多层嵌套示例:
Column() {Row() { // 横向排列容器Image('头像.jpg').width(50)Text('张三').fontSize(16)}Grid() { // 网格布局Image('产品1.jpg')Image('产品2.jpg')Image('产品3.jpg')}
}
(5)💡避坑指南
-
组件创建不用new
// ✅ 正确 Text('你好') // ❌ 错误 new Text('你好')
-
样式设置顺序不影响(大部分情况)
// 这两种写法效果相同 Text().fontSize(20).color('red') Text().color('red').fontSize(20)
-
容器组件必须包含内容
// ✅ 正确用法 Column() {Text('内容') } // ❌ 空容器会报错 Column()
类比理解:
开发界面就像玩装修游戏:
- 组件是各种家具(按钮=台灯,图片=挂画)
- 属性是家具的皮肤(颜色/尺寸/位置)
- 事件是家具的互动功能(点击台灯会亮)
- 容器是房间布局(书架=垂直排列,电视柜=水平排列)
三、🧩自定义组件的通俗指南
(1)什么是自定义组件?
就像搭乐高积木,系统组件是现成的积木块,而自定义组件是开发者自己设计的特殊积木。它能组合多个积木、重复使用,还能根据数据变化自动更新外观。
(2)为什么需要自定义组件?
- 代码复用:像写好的菜谱,重复使用不重写代码
- 逻辑分离:把界面和数据处理分开,像把食材和烹饪步骤分开
- 维护方便:改一个地方,所有用到的地方自动更新
(3)快速入门案例
// 定义一个会变色的问候组件
@Component
struct HelloComponent {@State message: string = 'Hello!'; // 会变的数据build() {Row() {Text(this.message).onClick(() => {this.message = '你戳我干嘛~'; // 点击后文字变化})}}
}// 在页面中使用
@Entry
@Component
struct MainPage {build() {Column() {HelloComponent() // 使用自定义组件HelloComponent({ message: '你好呀!' }) // 传入不同参数}}
}
(4)🛠️ 组件建造说明书
组件结构三要素
@Component // 🏷️ 组件身份证
struct MyComponent { // 🏗️ 组件骨架build() { /* UI描述 */ } // 🎨 绘制方法
}
装饰器的作用
装饰器 | 作用 | 示例 |
---|---|---|
@State | 数据变化自动刷新界面 | @State count = 0 |
@Entry | 标记为页面入口 | @Entry struct HomePage |
@Reusable | 组件可复用优化性能 | @Reusable struct Item |
构建规则(易错点)
-
根节点要求:
@Entry @Component struct MyPage {build() {// ✅ 正确:容器组件作为根节点Column() { Text('Hello') }// ❌ 错误:ForEach不能当根节点// ForEach([1,2,3], ...)} }
-
禁止操作:
build() {// ❌ 不能声明变量// let num = 1// ❌ 不能直接改状态// this.count++// ✅ 正确方式:通过事件修改Button('+1').onClick(() => this.count++) }
(5)🎨 样式与交互技巧
链式调用设置样式
Text('艺术字').fontSize(24) // 字号.fontColor('#FF69B4') // 粉色.margin({top:20}) // 上边距
组件样式继承的坑
// 子组件
@Component
struct MyButton {build() { Button('按钮') }
}// 父组件使用时
MyButton().backgroundColor('red') // ❌ 这个红色会加在"隐形容器"上
(实际效果:按钮外围会有红色背景,而不是按钮本身)
(6)⚠️ 常见问题急救包
-
为什么点击没反应?
- 检查是否漏写
@State
装饰器 - 确认事件绑定用了箭头函数:
.onClick(() => {})
- 检查是否漏写
-
组件显示空白?
- 检查
build()
是否有根节点 - 确认导出了组件:
export struct MyComponent
- 检查
-
样式不生效?
- 尝试用
!important
强制样式:.width(100).width!('80%')
- 尝试用
(7)🌰 实战案例:计数器组件
@Component
export struct MyCounter {@State num: number = 0build() {Row() {Button('-').onClick(() => this.num--)Text(`${this.num}`).margin(10)Button('+').onClick(() => this.num++)}}
}
@Entry
@Component
struct Index {build() {RelativeContainer() {Column() {Text('商品数量:')MyCounter() // 复用计数器MyCounter({ num: 5 }) // 初始值5}}.height('100%').width('100%')}
}
Tip:这个组件可以用于购物车、投票等需要增减操作的场景
🚀 进阶技巧
-
组件冻结(API11+):
@Component({ freezeWhenInactive: true }) // 离开屏幕时冻结组件 struct LazyComponent {}
-
跨页面传参:
@Entry({ routeName: 'detail', storage: myStorage }) @Component struct DetailPage {}
学习路线建议:从简单组件开始 → 掌握状态管理 → 尝试复杂布局 → 优化组件性能
相关文章:
鸿蒙开发——1.ArkTS声明式开发(UI范式基本语法)
鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法 [TOC](鸿蒙开发——1、ArkTS声明式开发:UI范式基本语法)一、ArkTS的基本组成(1)核心概念(像贴标签一样控制组件)(2)基础工具包(现成的积木块&am…...
ChatGPT-4o:临床医学科研与工作的创新引擎
技术点目录 2024大语言模型最新进展介绍ChatGPT-4o提示词使用方法与技巧ChatGPT-4o助力临床医学日常生活、学习与工作ChatGPT-4o助力临床医学课题申报、论文选题及实验方案设计ChatGPT-4o助力信息检索、总结分析、论文写作与投稿、专利idea构思与交底书的撰写ChatGPT-4o助力临床…...
Excel点击单元格内容消失
Excel点击单元格内容消失 前言一、原因说明二、解决方案1.菜单栏中找到“审阅”,选择“撤销工作表保护”2.输入密码3.解除成功 前言 Excel想要编辑单元格内容时,无论是单击还是双击单元格内容都莫名其妙的消失了 一、原因说明 单击或者双击Excel中单元…...
单片机-STM32部分:7、GPIO输入 按键
飞书文档https://x509p6c8to.feishu.cn/wiki/RtuVw6GgZiuwyBkxmdDcdsAFnKk 根据原理图,找到KEY1对应的PC3 找到CubeMX中的PC3,设置为GPIO_Input 右击,修改引脚名称为KEY1 或者在GPIO配置属性中修改 引脚模式:这里默认为输入模式&…...
从创意到变现:独立创造者的破局之路——解码《Make:独立创造者手册》
在创业浪潮奔涌的时代,独立创造者正成为商业领域中一股不可忽视的新兴力量。他们凭借对创新的执着、对问题的敏锐洞察,以及对自由创业模式的追求,试图在竞争激烈的市场中开辟属于自己的天地。《Make:独立创造者手册》如同一位经验丰富的创业导师,为独立创造者们提供了一套…...
14前端项目----登录/注册
登录/注册 assets用户注册模块登录模块tokenlogin组件业务token校验获取用户登录信息 登录成功---Header组件 assets assets文件夹:一般也是放置静态资源–>一般是多个组件共用的静态资源 webpack 会把 assests 静态资源当作是一个模块,打包到 js 文件里,不存在a…...
【FreeRTOS-消息队列】
参照正点原子以及以下gitee笔记整理本博客,并将实验结果附在文末。 https://gitee.com/xrbin/FreeRTOS_learning/tree/master 一、队列简介 1、FreeRTOS中的消息队列是什么 答:消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传…...
二叉查找树,平衡二叉树(AVL),b树,b+树,红黑树
🌲 一、二叉查找树(Binary Search Tree,简称 BST) 📌 定义 二叉查找树是一棵二叉树,它满足这样的特性: 每个节点最多有两个子节点(左、右)对于任意一个节点: 它左子树的所有节点值都比它小它右子树的所有节点值都比它大📈 举个例子 复制代码 10/ \5 20/ \ …...
可执行文件格式(ELF格式)以及进程地址空间第二讲【Linux操作系统】
文章目录 可执行文件的格式可执行文件中存储了什么可执行文件中的虚拟地址以及加载 进程地址空间第二讲CPU如何执行进程的代码再谈进程地址空间的区域划分 可执行文件的格式 源文件被编译器编译之后的可执行文件,并不是只有代码和数据,还有一定的格式&a…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.1 基础图表绘制(折线图/柱状图/散点图)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL数据分析实战:基础图表绘制(折线图/柱状图/散点图)8.1 基础图表绘制8.1.1 折线图:展现数据趋势数据准备图表绘制步…...
Yii2.0 模型规则(rules)详解
一、基本语法结构 public function rules() {return [// 规则1[[attribute1, attribute2], validator, options > value, ...],// 规则2[attribute, validator, options > value, ...],// 规则3...]; }二、规则类型分类 1、核心验证器(内置验证器࿰…...
Notepad++中XML格式化插件介绍
Notepad++中XML格式化插件介绍 背景安装指南安装步骤验证安装成功安装失败可尝试使用说明XML文件格式正确时格式化错误格式检查XML Tools插件核心功能盘点常见问题格式化后没变化中文显示乱码拯救杂乱XML格式!Notepad++这个神器插件,必须接收!背景 接手别人写的XML,缩进乱成…...
在 R 中,清除包含 NA(缺失值)的数据
在 R 中,清除包含 NA(缺失值)的数据可以通过多种方式实现,具体取决于你希望如何处理这些缺失值。以下是几种常见的方法,包括删除包含 NA 的行、删除包含 NA 的列,或者用特定值填充 NA。 1. 删除包含 NA 的…...
Linux复习笔记(一)基础命令和操作
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。 一、Linux中的基础命令和操作(约30%-40%) 1.用户和组(5%左右) 1.1用户简介(了解) 要求:了解,知道有三个用户…...
多线程的出现解决了什么问题?深入解析多线程的核心价值
多线程的出现解决了什么问题?深入解析多线程的核心价值 1. 引言 在计算机科学中,多线程(Multithreading) 是一种重要的并发编程技术,它允许一个进程同时执行多个任务,从而提高程序的性能和响应能力。那么,多线程究竟是为了解决哪些问题而诞生的?它的核心价值是什么?…...
java集合菜鸟教程
1、Java集合的分类 1Java中的集合类可以分为两大类: (1)实现Collection接口,Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element),图1是Collection与子类的…...
体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链
在竞技体育与全民健身并行的时代背景下,体育培训机构正面临双重挑战:既要通过科学训练提升学员竞技水平,又需严格把控运动安全风险。作为实验室数字化管理的核心工具,质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…...
3、食品包装控制系统 - /自动化与控制组件/food-packaging-control
76个工业组件库示例汇总 食品包装线控制系统 这是一个用于食品包装线控制系统的自定义组件,提供了食品包装生产线的可视化监控与控制界面。组件采用工业风格设计,包含生产流程控制、实时数据监控和逻辑编程三个主要功能区域。 功能特点 工业风格UI设…...
AbMole的Calcein-AM/PI细胞双染试剂盒,精准区分细胞活死状态
在细胞生物学研究中,细胞活性检测是基础且关键的实验环节。然而,传统方法在检测活细胞和死细胞时常常面临诸多挑战:例如,检测过程复杂、耗时,容易受到细胞类型和实验条件的限制;荧光信号不稳定,…...
力扣刷题Day 37:LRU 缓存(146)
1.题目描述 2.思路 方法1:直接用Python封装好的数据结构OrderedDict(兼具哈希表与双向链表的数据结构)。 方法2:哈希表辅以双向链表。 3.代码(Python3) 方法1: class LRUCache(collections…...
动态规划之01背包——三道题助你理解01背包
目录 二维数组实现 一维数组实现 例一P1164 小A点菜 P1048 [NOIP 2005 普及组] 采药 P1802 5 倍经验日 首先做动规很好的一个办法就是卡哥提出的动规五部曲个人觉得很好用 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍…...
【前端笔记】CSS 选择器的常见用法
目录 1. CSS 的基本语法规范2. CSS 的引入方式3. CSS 选择器的种类3.1 标签选择器3.2 类选择器3.3 id 选择器3.4 复合选择器3.5 通配符选择器 4. 补充内容 1. CSS 的基本语法规范 选择器 {1 条 / n 条声明} 选择器决定的是修改谁声明决定的是怎么修改声明的属性是键值对&…...
电脑桌面悬浮窗便签,好用的电脑桌面便签工具
不知道大家有没有发现,我们每天要处理的事情越来越多:工作会议、项目截止日期、临时灵感、购物清单...光靠大脑记忆显然不够靠谱。你可能试过用手机备忘录,但工作时频繁切换设备又很影响效率。 这时候,一款好用的电脑桌面便签工具…...
Windows环境下maven的安装与配置
1.检查JAVA_HOME环境变量 Maven是使用java开发的,所以必须知道当前系统环境中的JDK的安装目录。 搜索栏直接输入“cmd” 或者 WinR 输入cmd 在打开的终端窗口输入“echo %JAVA_HOME”,就可以看到jdk的位置了。 如果没有的话,请参考我的文章&a…...
PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式
一个简单的矩阵乘法例子来演示在 PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式。 这个例子会展示核心的区别在于如何获取和指定计算设备,以及(对于 TPU)可能需要额外的库和同步操作。 示例代码: import torch import tim…...
数据库同步方案:构建企业数据流通的高速通道
在数字经济时代,数据已成为企业核心资产。根据Gartner统计,超过70%的企业因数据孤岛问题导致决策延迟,而高效可靠的数据库同步方案正是破解这一困局的关键技术。本文将深度解析数据库同步的核心逻辑、主流方案及实践策略,助企业构…...
微信小程序开发,登录注册实现
文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…...
VSCode怎么同时打开多个页面
VSCode中打开一个文件会把另一个文件覆盖,始终保持打开一个文件的状态,相对于其他IDE是不太习惯的,如果同时打开两个文件页面怎么去设置呢 1、禁用预览模式 2、快速分屏快捷键: Ctrl\ (Windows/Linux) 或 Cmd\ (macOS)...
【多种不同提交方式】通过springboot实现与前端网页数据交互(非常简洁快速)
【多种不同提交方式】通过springboot实现与前端网页数据交互 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】&am…...
Web 架构之负载均衡全解析
文章目录 一、引言二、思维导图三、负载均衡的定义与作用定义作用1. 提高可用性2. 增强性能3. 实现扩展性 四、负载均衡类型硬件负载均衡代表设备优缺点 软件负载均衡应用层负载均衡代表软件优缺点 网络层负载均衡代表软件优缺点 五、负载均衡算法轮询算法(Round Ro…...
猫咪如厕检测与分类识别系统系列~进阶【一】视频流推流及网页实时展示
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
DeepSeek全域智能革命:从量子纠缠到星际文明的认知跃迁引言:认知边界的坍缩与重构
一、认知架构的技术基石 1.1 混合专家系统的流形蒸馏 DeepSeek-R2的MoE架构采用微分流形蒸馏技术,将6710亿参数的教师模型(如DeepSeek-Prover-V2)的知识嵌入到动态路由网络中。通过辛几何约束下的参数投影,模型在保留数学证明能…...
Mkdocs页面如何嵌入PDF
嵌入PDF 嵌入PDF代码 ,注意PDF的相对地址 <iframe src"../个人简历.pdf (相对地址)" width"100%" height"800px" style"border: 1px solid #ccc; overflow: auto;"></iframe>我的完整代码: <d…...
JS进阶DAY2 构造函数数据常用函数
深入对象 1.创建对象的三种方式 1.利用对象字面量创建对象 const o{ name:佩奇 } 2.利用 new Object 创建对象 const onew Object({ name:佩奇}) console.log(o) //{name:佩奇} 3.利用构造函数创建对象 2.构造函数 构造函数:是一种特殊的函数,主要用来初始…...
【ARM AMBA AHB 入门 3 -- AHB 总线介绍】
请阅读【ARM AMBA 总线 文章专栏导读】 文章目录 AHB Bus 简介AHB Bus 构成AHB BUS 工作机制AHB 传输阶段 AHB InterfacesAHB仲裁信号 AHB 数据访问零等待传输(no waitstatetransfer)等待传输(transfers with wait states)多重传送(multipletransfer)--Pipeline AHB 控制信号 A…...
计划评审技术PERT
计划评审技术(Program Evaluation and Review Technique,PERT)是一种用于项目管理和分析的工具,主要用于估算项目完成时间、识别关键路径以及评估项目进度风险。它最初是在20世纪50年代由美国海军开发的,用于管理复杂的…...
【Leetcode 每日一题 - 扩展】3342. 到达最后一个房间的最少时间 II
问题背景 有一个地窖,地窖中有 n m n \times m nm 个房间,它们呈网格状排布。 给你一个大小为 n m n \times m nm 的二维数组 m o v e T i m e moveTime moveTime,其中 m o v e T i m e [ i ] [ j ] moveTime[i][j] moveTime[i][j] 表…...
Linux57配置MYSQL YUM源
错了,弄错了下载地址 显示没MYSQL 刚才YUM包弄错了 下的是rpm文件 应该安装 通过yum install安装 .repo中的enabled需要修改 哪些能修改 哪些不改 配置特定软件的YUM仓库 nginx看教程有官方文档 将官方文档中YUM配置写入.repo文件然后yum clean all yum ma…...
Kafka是什么?典型应用场景有哪些? (消息队列、流处理平台;日志收集、实时分析、事件驱动架构等)
Kafka 核心解析与场景代码示例 一、Kafka核心概念 Apache Kafka 是分布式流处理平台,具备以下核心能力: 发布-订阅模型:支持多生产者/消费者并行处理持久化存储:消息默认保留7天(可配置)分区机制&#x…...
数据实验分析
数据分析数据分类与绘图数据分类方法:通过指定列名和函数(如SUM)来分类数据,确保数据集中包含所需列,否则会报错。嵌套柱形图应用:嵌套柱形图用于展示多层次分类的数据,如按店名和化妆品类别分类…...
PostgreSQL中“参数默认值实现伪重载“详解
什么是伪重载? "伪重载"指的是通过单一函数定义配合参数默认值和条件逻辑来模拟传统编程语言中方法重载的效果。与真正的函数重载(PostgreSQL支持的多同名函数不同参数实现)不同,伪重载是在一个函数内部处理不同参数组…...
在IDEA中编写Spark程序并运行
Spark是基于scala的,当然它也可以支持java和scala还有python语言,我们这里会使用scala。 1.在Idea中安装插件,使得Idea中可以编写scala代码。 2.使用Maven创建项目,并在pom.xml文件中配置相关的依赖。 3.设置maven依赖项。修改po…...
知识图谱:AI大脑中的“超级地图”如何炼成?
人类看到“苹果”一词,会瞬间联想到“iPhone”“乔布斯”“牛顿”,甚至“维生素C”——这种思维跳跃的背后,是大脑将概念连结成网的能力。而AI要模仿这种能力,需要一张动态的“数字地图”来存储和链接知识,这就是知识…...
Facebook隐私设置详解:如何保护你的个人信息
在这个数字化时代,个人信息安全变得尤为重要。Facebook 作为全球最大的社交网络平台之一,拥有数十亿用户。然而,随着用户数量的增加,隐私问题也日益凸显。本文将详细介绍 Facebook 的隐私设置,帮助你更好地保护个人信息…...
【Hive入门】Hive数据导入与导出:批量操作与HDFS数据迁移完全指南
目录 引言 1 Hive数据导入概述 1.1 Hive数据导入方式分类 1.2 Hive数据模型与存储结构 2 LOAD DATA命令详解 2.1 基本语法与参数 2.2 LOAD DATA执行流程 2.3 案例分析 3 HDFS数据迁移技术 3.1 HDFS文件操作与Hive集成 3.2 外部表技术应用 3.3 分区表动态加载 4 性…...
深入浅出JSON:现代数据交换的基石
JSON(JavaScript Object Notation)已经成为当今互联网上最流行的数据交换格式之一。无论是Web API、配置文件还是NoSQL数据库,JSON都扮演着至关重要的角色。本文将带你全面了解JSON,从基础概念到高级应用。 什么是JSON࿱…...
C++ 日志系统实战第四步:设计与代码实现详解
全是通俗易懂的讲解,如果你本节之前的知识都掌握清楚,那就速速来看我的项目笔记吧~ 本文将加入项目代码编写! 目录 日志系统框架设计 模块划分 模块关系图 代码设计 实用类设计 日志等级设计 日志消息类 日志输出格式 日志落地(L…...
DeepSeek API接口调用示例(开发语言C#,替换其中key值为自己的key值即可)
示例: DeepSeek官方接口说明文档:对话补全 | DeepSeek API Docs 官网暂未提供C#代码实现:(以下为根据CURL接口C#代码调用) using System; using System.Collections.Generic; using System.Linq; using System.Text; …...
PyTorch常用命令(可快速上手PyTorch的核心功能,涵盖从数据预处理到模型训练的全流程)
以下是PyTorch常用命令的分类整理,涵盖张量操作、模型构建、数据加载、训练流程等核心内容: 1. 张量操作 创建张量 x torch.tensor([1, 2, 3]) # 从数据创建 x torch.zeros(3, 3) # 全零张量 x torch.ones(3, 3) …...
软开错题(二)
SNMP的传输层协议是UDP Linux操作系统中通常使用apache作为web服务器,其默认的web站点的目录是 /var/www/html 归并排序不是原地排序 邻接表:包含n个头节点和e个表节点,其广度和深度遍历的时间复杂度都是O(ne) grant使用方式 grant 权限 …...