鸿蒙语言基础

news2025/5/11 20:48:24

准备工作

去鸿蒙官网下载开发环境

点击右侧预浏览,刷新和插销按钮,插销表示热更新,常用按钮。

基础语法

string number boolean const常量 数组

let s : string = "1111";
console.log("string", s);

let n : number = 1;
console.log("number", n);

let bool : boolean = true;

const PI= "asdfasdf";
console.log(PI);

let numbers = [1, 2, 3, 4, 5, 6];
console.log("arr", numbers);

接口

实现接口时,必须实现所有的属性和方法

interface HI{
  a : string;
  b : number;
  c : boolean;
  sing : (song:string) => void;
  dance : ()=>void;
}

let person: HI = {
  a : "123",
  b : 1,
  c : true,
  sing : (song:string)=>{
    console.log("唱首歌", song);
  },
  dance : ()=>{

  }
}
console.log("1", person.a, person.b, person.c);
person.sing("爱的供养");
function fun(){}

联合类型

// 1
let judge : number | string  = 100;
judge = "A";

// 2
let gender : 'man' | 'woman' = 'man';

枚举类型

enum ThemeColor {
  Red = '#ff0f29',
  Orange = '#ff7110',
  Green = '#30b30e'
}
let color : ThemeColor = ThemeColor.Red;

字符串拼接

字符串+数字

数字+字符串

字符串+ 字符串

只要一边是字符串就是拼接。

模板字符串

``里面可以使用变量,方便多个字符串的拼接。

数字和字符串转换

需要注意的是:

        parseInt('1.1a') 直接取整,忽略0.1a

        parseFloat('1.1a') 1.1

        parseFloat('1.a1') 1

        也就是说,parseFloat在遇到非数字时就会截断。

点击事件

.onClick(),参数为一个回调函数
Button('按钮').onClick(()=>{
  AlertDialog.show({
    message : '弹窗'
  })
})

状态管理

注意:struct里的变量必须用this访问且不能使用let定义。

小技巧:点击预览器上面的T标志,可以使用鼠标定位元素对应的代码。

数组操作

添加:

        arr.unshift(); //从开头增加,返回操作后数组长度

        arr.push(); //从结尾增加,返回操作后数组长度

删除:

        arr.shift(); //从开头删除,返回删除的项

        arr.poll(); //从结尾删除,返回删除的项

在指定位置增加/删除n个元素:

        arr.splce(起始位置, 删除个数, 新增元素1, 新增元素2, ...);

if语句

小括号结果不是布尔类型时,会类型转换为布尔值

if(0、空串、null和undefine)这几种均视为false

其他非空值(如对象)均视为true,如空数组和空对象:if( [] )、if( {} )

for...of

对象数组

不能直接使用对象输出,要使用JSON.stringify(对象);

interface Person {
  name : string,
  age : number
}
let arr : Person[] = [
  {name:"111",age: 1},
  {name:"222", age: 2}
]
console.log("", arr[1]); //[object Object]
for (let item of arr){
  console.log(JSON.stringify(item));
}

ForEach—— 渲染控制

注意使用ForEach时,item需要指定类型,index指不定都行,建议写上。

class 

类是用于 创建对象 模板。同时类声明也会引入一个 新类型,可定义其 实例属性方法 构造函数

一般定义更加复杂的类型时就不适用接口了而使用Class。

1、实例属性:在定义class时必须赋初值,或者使用可选链操作符 ?. 来定义属性

2、不同实例,将来需要有不同的字段初始值,就需要通过构造函数实现

构造函数使用关键字:constructor 来定义,在new对象时调用。如果参数多可是传一个对象,这样可以自由顺序赋值。

3、方法:方法的返回值可以写在函数名之后,用冒号隔开,即:这个函数的类型时返回值类型的。

4、静态属性、方法:一般用作工具属性方法,用类名直接调用。

interface IFood {
  name : string,
  price : number,
  desc : string
}

class Food {
  // 1、属性
  name : string
  price : number
  desc : string
  a ?: number

  // 2、构造
  constructor(mesObj:IFood) {
    this.name = mesObj.name
    this.price = mesObj.price
    this.desc = mesObj.desc
  }

  // 3、方法
  sayHi(name:string):void{
    console.log(this.name, name);
  }

  // 4、静态属性、方法
  static num:number
  static func(){}
}

5、继承extend和super关键字

类可以通过 继承 快速获取另外一个类的 字段 方法。只支持单一继承。

子类通过 super 可以访问父类的实例字段、实例方法和构造函数。

super.属性

super.方法

super(1, 2)  //调用父类构造

6、instanceof 类型检测

实例对象 instanceof 类型

typeof 表达式 : 只能检测简单类型,对象类型结果均为Object。

7、修饰符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南

引言 在生成式 AI 浪潮中,GPU 常被视为大模型推理的唯一选择。然而,随着 ARM 架构的崛起和量化技术的成熟,CPU 推理的性价比逐渐凸显。本文基于 Amazon Graviton 系列实例与 llama.cpp 工具链,实测了 Llama 3、DeepSeek 等模型的…

每日定投40刀BTC(14)20250409 - 20250419

定投 坚持 《磨剑篇》浮生多坎壈,志业久盘桓。松柏凌霜易,骅骝涉险难。砺锋临刃缺,淬火取金残。但使精魂在,重开万象端。

服务治理-服务注册

一个服务在真实项目部署的时候,如果压力较大,会做多实例部署。 在IDEA里面做多实例部署的话,只需要配置多个启动项。

NestJS——多环境配置方案(dotenv、config、@nestjs/config、joi配置校验)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

MongoDB导出和导入数据

安装mongodump工具 参考文章mongodump工具安装及使用详解_mongodump安装-CSDN博客 MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装,而是需要自己手动安装。 官方网站下载链接:Download MongoDB Command Line Database Tools …

Serving入门

ServingHelloWorld Serverless 一个核心思想就是按需分配,那么 Knative 是如何实现按需分配的呢?另外在前面已经了解到 Knative Serving 在没有流量的时候是可以把Pod 缩容到零的。接下来就通过一些例子体验一下 Knative 缩容到零和按需自动扩缩容的能力…

【HDFS入门】HDFS数据冗余与容错机制解析:如何保障大数据高可靠存储?

目录 1 HDFS冗余机制设计哲学 1.1 多副本存储策略的工程权衡 1.2 机架感知的智能拓扑算法 2 容错机制实现原理 2.1 故障检测的三重保障 2.2 数据恢复的智能调度 3 关键场景容错分析 3.1 数据中心级故障应对 3.2 数据损坏的校验机制 4 进阶优化方案 4.1 纠删码技术实…

UE学习记录part19

231 insect: insect enemy type 创建dead动画资源 往insect head上添加socket 创建攻击root motion动画。motion warping需要与root motion合作使用 为buff_blue创建物理资产 设置simulate physic使sinsect死亡后能落到地板上而不是漂浮在空中,要将die函数设置为 -…

运行后allure报告没有自动更新(已解决)

pycharm直接运行run.py文件, allure生成的报告都没有更新,需要手动删除旧报告后再次运行才可以 pytest.ini [pytest]testpaths testcases/ addopts --alluredir ./report/result --clean-alluredir run.py主要代码 if __name__ "__main__&qu…

微信小程序 时间戳与日期格式的转换

1. 微信小程序 时间戳与日期格式的转换 微信小程序中的时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。例如现在北京时间2015-12-31 17:00:00的时间戳是1451552400,就是指从北京时间1970-01-01 08:00:00到…

【深度学习—李宏毅教程笔记】Transformer

目录 一、序列到序列(Seq2Seq)模型 1、Seq2Seq基本原理 2、Seq2Seq模型的应用 3、Seq2Seq模型还能做什么? 二、Encoder 三、Decoder 1、Decoder 的输入与输出 2、Decoder 的结构 3、Non-autoregressive Decoder 四、Encoder 和 De…

【人工智能学习-01-01】20250419《数字图像处理》复习材料的word合并PDF,添加页码

前情提要 20250419今天是上师大继续教育人工智能专升本第一学期的第一次线下课。 三位老师把视频课的内容提炼重点再面授。(我先看了一遍视频,但是算法和图像都看不懂,后来就直接挂分刷满时间,不看了) 今天是面对面授…

使用 Docker 安装 Elastic Stack 并重置本地密码

Elastic Stack(也被称为 ELK Stack)是一个非常强大的工具套件,用于实时搜索、分析和可视化大量数据。Elastic Stack 包括 Elasticsearch、Logstash、Kibana 等组件。本文将展示如何使用 Docker 安装 Elasticsearch 并重置本地用户密码。 ###…

利用 Deepseek 和 Mermaid 画流程图

提示词 你是一个产品经理,请绘制一个报名比赛的流程图,要求生成符合Mermaid语法的代码,具体要求如下: 1.注册账号 2.填写报名信息 3.参加比赛 4.查看比赛结果 生成的结果 flowchart TDA([开始]) --> B[注册账号]B --> C{账…

学习笔记: Mach-O 文件

“结构决定性质,性质决定用途”。如果不了解结构,是很难真正理解的。 通过一个示例的可执行文件了解Mach-O文件的结构 Mach-O基本结构 Header: :文件类型、目标架构类型等Load Commands:描述文件在虚拟内存中的逻辑结构、布局Data: 在Load commands中…

个人自用-导入安装Hexo

因为本人原来就有备份好的资料,所以重新安装起来会很方便,这个教程也只适合我自己用 但是所有的命令行都要在Git的命令行里面使用(因为我就是这样操作的) 1 安装Git Git的官网 Git git --version 这个是查看Git的版本 git --…

《AI大模型应知应会100篇》第26篇:Chain-of-Thought:引导大模型进行步骤推理

第26篇:Chain-of-Thought:引导大模型进行步骤推理 摘要 在自然语言处理(NLP)和人工智能领域,如何让大模型像人类一样进行逐步推理是一个核心挑战。Chain-of-Thought (思维链) 技术的出现为这一问题提供了强有力的解决…

STM32单片机入门学习——第43节: [12-3] 读写备份寄存器实时时钟

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.19 STM32开发板学习——第43节: [12-3] 读写备份寄存器&实时时钟 前言开发板说明…

零基础上手Python数据分析 (18):Matplotlib 基础绘图 - 让数据“开口说话”

写在前面 —— 告别枯燥数字,拥抱可视化力量,掌握 Matplotlib 绘图基础 欢迎来到 “高效数据分析实战指南:Python零基础入门” 专栏! 经过前面 Pandas 模块的学习和实战演练,我们已经掌握了使用 Python 和 Pandas 进行数据处理、清洗、整合、分析的核心技能。 我们能够从…

【网络原理】UDP协议

目录 一. UDP 报文格式 (1)端口号 (2)UDP长度 (3)校验和 UDP协议属于传输层协议,由操作系统内核内置 一. UDP 报文格式 UDP数据报:无连接,不可靠传输,面…