开天辟地 HarmonyOS(鸿蒙) - ArkTS 类: 模块

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - ArkTS 类: 模块

示例如下:

pages\arkts\module\Main.ets

import { TitleBar, MyLog } from '../../TitleBar';// 从指定的模块中导入指定的被 export 的变量或函数或对象
import { name, hello } from './a';
// 从指定的模块中导入指定的被 export 的变量或函数或对象
import { name_b, hello_b } from './b';
// 从指定的模块中导入指定的被 export 的变量或函数或对象(并重命名)
import { name as name_c, hello as hello_c } from './c';
// 从指定的模块中导入指定的被 export 的变量或函数或对象(并重命名)
import { name as name_d, hello as hello_d } from './d';
// 从指定的模块中导入被 export default 的变量或函数或对象,并为其命名
// 注:对于 export default 导出的对象,在 import 的时候不需要加 {}
import class_e from './e';
// 从指定的模块中导入被 export default 的变量或函数或对象,并为其命名
// 注:对于 export default 导出的对象,在 import 的时候不需要加 {}
import obj_f from './f';
// 从指定的模块中导入指定的被 export 的变量或函数或对象
import { name as name_g, hello as hello_g }  from './g';
// 从指定的模块中导入被 export 的全部内容
import * as obj_h from './h';
// 将 './i' 文件导入并编译
import './i';// j 中 myClass 对象的 name 属性的值为 i am j
// k 导入了 j 中的 myClass 对象,并将其 name 属性的值修改为 i am k
// l 导入了 j 中的 myClass 对象,并将其 name 属性的值修改为 i am l
// 这里导入 j, k, l 并分别输出 myClass 对象的 name 属性的值,结果都是 i am l
// 所以,当一个变量被多个其他文件导入时,实际上引用的是同一个变量,也就是说,它们共享同一个内存中的实例,而不是为每个导入创建新的副本
import { myClass as j } from './j';
import { myClass as k } from './k';
import { myClass as l } from './l';@Entry
@Component
struct MainDemo {build() {Column() {TitleBar()Text("代码示例结合 HiLog 日志一起看")}}
}// 下面这句会编译时报错,因为 import 进来的变量是只读的,无法修改其本身(注:如果导入的是一个对象的话,可以修改对象的属性)
// name = 'xxx';MyLog.d(`a: ${name} ${hello()}`);
MyLog.d(`b: ${name_b} ${hello_b()}`);
MyLog.d(`c: ${name_c} ${hello_c()}`);
MyLog.d(`d: ${name_d} ${hello_d()}`);
MyLog.d(`e: ${new class_e("name").name} ${new class_e("name").hello()}`);
MyLog.d(`f: ${obj_f.name} ${obj_f.hello()}`);
MyLog.d(`g: ${name_g} ${hello_g()}`);
MyLog.d(`h: ${obj_h.name} ${obj_h.hello()}`);MyLog.d(`j: ${j.name}`);
MyLog.d(`k: ${k.name}`);
MyLog.d(`l: ${l.name}`);

pages\arkts\module\a.ets

let name = "name";
let hello = () => {return "hello";
};// 导出指定的变量或函数或对象
export { name, hello }

pages\arkts\module\b.ets

let name = "name";
let hello = () => {return "hello";
};// 导出指定的变量或函数或对象(并重命名)
export { name as name_b, hello as hello_b};

pages\arkts\module\c.ets

// 导出指定的变量或函数或对象
export let name = "name", hello = ()=> { return "hello"; };

pages\arkts\module\d.ets

// 导出指定的变量或函数或对象
// 一个模块中可以有多个 export
export let name = "name";
export let hello = ()=> { return "hello"; };

pages\arkts\module\e.ets

// 导出 default 变量或函数或对象
// 一个模块中只能有一个 export default
export default class MyClass{public name: string;constructor(name: string) {this.name = name;}hello() {return "hello";}
}

pages\arkts\module\f.ets

class MyClass{public name: string;constructor(name: string) {this.name = name;}hello() {return "hello";}
}let obj = new MyClass("name");// 导出 default 变量或函数或对象
// 一个模块中只能有一个 export default
export default obj;

pages\arkts\module\g.ets

// 从指定的模块中导出全部内容
export * from './a';

pages\arkts\module\h.ets

let name = "name";
let hello = () => {return "hello";
};// 导出指定的变量或函数或对象
export { name, hello }

pages\arkts\module\i.ets

import { MyLog } from '../../TitleBar';let myName = "i am webabcd";
MyLog.d(myName);

pages\arkts\module\j.ets

export class MyClass {name: string;constructor(name: string) {this.name = name;}
}
export let myClass = new MyClass("i am j");

pages\arkts\module\k.ets

import { myClass, MyClass } from './j';
myClass.name = 'i am k'
// 下面这句会编译时报错,因为 import 进来的变量是只读的,无法修改其本身
// myClass = new MyClass("xxx")export { myClass }

pages\arkts\module\l.ets

import { myClass, MyClass } from './j';
myClass.name = 'i am l'
// 下面这句会编译时报错,因为 import 进来的变量是只读的,无法修改其本身
// myClass = new MyClass("xxx")export { myClass }

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑本地部署deepseek教程

Ollama:本地大模型运行指南奇舞精选2024-04-2814,445阅读11分钟关注 智能总结 复制 重新生成 这篇文章主要介绍了本地大模型运行框架 Ollama。包括其简介、安装方法(下载安装及大模型下载)、终端对话(如显示帮助、模型信息等命令)、API 调用(generate 和 chat 两…

可能是对春节假期的一些总结

写在前面2603 字 | 总结 | 经历 | 思考 | 感触未经允许,禁止转载。 正文「我一直都应该知道,听到别人说出她的名字,我还是会心里一跳。」过年与我当初预计的完全不同。我当初的计划,春节七八天,写很多很多文章,极速推进今年年度计划的写作一项。为此还专门订阅了一个月的…

搜狗录音笔c1折腾

1.买的pdd厂家帮我整好了大部分(应该刷过固件) 2.遇到的问题就是c to c的线...它没有协商,得插电脑usb-a口上才能识别到 3.厂家提供的搜狗录音笔助手这个软件是有点小处理的不是原软件(指解锁登录,其他的没看出问题,至少软件没报毒)

task3

任务二:Smiling-Weeping-zhr/Travel-assistant 自建项目链接,有关大模型关于大模型解答旅游相关

1.4 条件分支和循环机制

程序的流程分为顺序执行、条件分支和循环三种 顺序执行是按照地址内容的顺序执行指令。 条件分支是根据条件执行任意地址的指令。 循环是指重复执行同一地址的指令。 顺序执行每执行一个指令程序计数器的值自动加1条件分支和循环中使用的跳转指令,会参照当前执行的运算结果来判…

vue3使用flv.js播放flv直播流

目前有个需求是:管理直播机有一个列表需要查看每个直播机的实时内容,所以需要在后台加这个功能。 效果:我用ffmpeg模拟推流: 如何用ffmpeg模拟推流请看我上一篇文章 网页: 如上是可以正确再网页端拉流,这个功能费了一天的时间,在这里免费分享出来。 首先安装flv.js(用n…

DeepSeep本地部署

1、浏览器搜索引擎更改 2、搜索:Ollama操作下载: 也可直接进入下载路径:https://ollama.com/download/windows ollama run deepseek-r1 本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/18699050

Linux下使用df与du命令查看磁盘空间

1、df磁盘空间查看df可以查看一级文件夹大小、使用比例、档案系统及其挂入点。[root@oms ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 40G 35G 3.1G 92% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmp…

JOKER智能可视化平台 20250204版本更新说明

本次 JOKER 低代码平台更新涵盖了代码生成、环境变量、可视化开发工具等多个关键领域的优化与新增功能,致力于为开发者提供更高效、更安全、更便捷的开发体验。同时,服务端功能的正式发布以及核心升级,进一步增强了平台的整体性能和竞争力。 一、功能更新与优化 (一)代码生…

城市智慧升级:超算与智算的协同效应

随着数字化转型的不断深入,城市高质量发展越来越依赖于强大的算力支持。结合超级计算(超算)和智能计算(智算)的“超算+智算”模式,正在成为推动城市创新和智能化发展的重要力量。超算与智算的结合超级计算通常指的是使用最先进的计算机硬件和软件进行大规模科学计算的技术…

linux安装适用glibc2.17的nodejs高版本

从nodejs18开始需要的glibc版本要>2.28,这对有些系统是不支持的,除了官方的下载地址外,还有个地址可以下载适用2.17的nodejs高版本。 https://unofficial-builds.nodejs.org/download/release/ 对于linux平台直接下载解压使用即可。本帖子也是纯手工制作,转载请标明出处…