登上我的地球Online,看着世界群的消息列表,铺天盖地的消息迎面而来,这个世界的用户似乎涌入的比较多。服务器也加速了游戏的进程,战争频发,网络中出现了许多网络红人,他们靠着流量出现在本不该出现的地方,我突然想起《周易·系辞下》的一句话:‘德不配位,必有殃灾。’其实也不然,来人可听过鲜衣怒马少年郎?
哈哈哈,插个题外话而已。这个游戏的真真假假已太多,我的角色只有可怜的几十年存在时间,玩游戏嘛,当然角色越厉害越好喽。为了更厉害,我决定做些什么了,首先,要想玩好这个游戏,我看了太多的攻略,最重要的一点就是信息差,信息的获取能力!这是非常重要的,那么在我们海量的获取信息时,有一个厉害的功能就凸显出来了,我们需要分析出什么是真假,别人说的真的就是真的吗?我们都只是简单的获取信息,那么我们为什么不分析一下信息的真假?詹姆斯·瓦特就是蒸汽机的发明者?爱迪生发明了灯泡?这就是真的吗,你怎么知道就是他们发明的?当然这都是谬论。那么关于其他的呢,圆就是完全对称的?π就是算不尽的?你算过没有?对嘛,别说我误导你让你对这个游戏怀疑了,我只是想说,保持一个对这个世界提出疑问质疑的能力。
不要跟着NPC随大流,我不得不提这一点,为了至少使当下能有财富重新分配的能力,还是回归咱们的HarmonyOs,-2023年8月4日,HarmonyOS 4.0操作系统正式发布。爆料2024年:预计推出HarmonyOS Next。鸿蒙生态迎接挑战:单一设备延伸到多设备、厚重应用模式到轻量化服务模式 集中化分发到AI加持下的智慧分发、纯软件到软硬芯协同的AI能力。
切记:学好编程不能只看,我可以边看华为开发者联盟视频学习,一边实践,跟上节奏,大家一块学,才会有源源不断的动力。
首先注册华为开发者联盟账号,并进行实名认证,这将有助于我获取HarmonyOS课程学习以及和开发者交流的机会。
华为开发者联盟-智能终端能力开放,共建开发者生态 (huawei.com)
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。ArkTS则是TypeScript的超集,它扩展了 TypeScript的语法。TypeScript是JavaScript的超集,它扩展了 JavaScript 的语法。首先回顾学习一下TypeScript。
TypeScript支持布尔型、数组、字符串等数字类型。“我”来快速过一眼。
let a: boolean = true;
let b: boolean = false;
TypeScript里的所有数字都是浮点数,除了支持十进制,还支持二进制、八进制、十六进制。
let a: number = 2023;
let b: number = 0b11111100111; //二进制let c: number = 0o1234567 // 0o 八进制
let d: number = 0x123abcdef //0x 十六进制
使用 string表示文本数据类型
let name: string = "Jacky";
name = "Tom";
let list: number[] = [1, 2, 3];
let list: Array= [1, 2, 3];
let x: [string, number];
x = ['hello', 10];
enum Color {Red, Green, Blue};
let c: Color = Color.Green;
编程使用,用于不确定数字类型
let notSure: unknown = 4;
notSure = 'maybe a string instead';
notSure = false;
联合类型取值多种类型的一种
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
// 有名函数
function add(x: number, y: number): number {
return x + y;
}// 匿名函数:通常需要临时定义一个函数并在某个地方立即调用它的情况下使用
let myAdd = function (x: number, y: number) : number{
return x + y;
};
它是定义匿名函数的简写语法,它省略了function关键字。括号内是函数的入参,可以有0到多个参数。
let arrowFun = ( [param1, parma2,…param n] )=> {
// 代码块
}调用
arrowFun(param1, parma2,…param n)
定义类的关键字为 class,后面紧跟类名。
class Person { //private 封装私有化成员属性
private name: string //定义属性类型
private age: numberconstructor(name: string, age: number) {
this.name = name; //前一个name为类的属性,后一个name指一个函数的一个参数,下同。
this.age = age;
}public getPersonInfo(): string {
return `My name is ${this.name} and age is ${this.age}`;
}
}
调用类
let person1 = new Person('Jacky', 18);
person1.getPersonInfo();
这是刚新建文件我运行出HelloWorld的Index中的代码,我需要对这些代码组件进行详细的认识和了解,先把Index中的代码简单了解一下。
“我”可以对“fontSize”“width”“height”中的数字进行修改,再在右边的previewer中进行查看,有趣有趣,Hello World 在不停变换位置和大小。
我们先简单见识认识一下代码和格式,方便接下来的熟练使用。
Text('hello')
.fontSize(20)
.fontColor(Color.Red)
.fontWeight(FontWeight.Bold)
Button('Click me')
.onClick(() => {
this.myText = 'ArkUI';
})
Image('meinv.jpg')
.alt('error.jpg')
.width(100)
.height(100)
Column、Row、Stack、List等
Row(){
Column() {
Text('Hello')
.fontSize(100)
Divider()
Text(this.myText)
.fontSize(100)
.fontColor(Color.Red)
}}
可复用的UI单元,可组合其他组件,将UI进行封装,用户自定义组件。
例如:定义一个组件
@Component //struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。
struct Title{ //自定义组件基于struct实现,struct + 自定义组件名 + {...}
....
build() { //自定义组件中必须定义build()方法进行描述
....
}
}
组件中还能包含另一个自定义组件,实现自定义组件的重用,被使用的组件为子组件。
Title组件
@Entry //默认的页面入口组件,一个页面只有一个
@Component
struct RankPage {
...
build() {
Column(){
Title()
}
}
我们需要将自定义的组件导出以供外部使用,我们需要用export导出组件
export struct ***{
.....
build(){
}
}
使用import来导出组件
import {****} from '../**/***';
通过渲染控制语法能便捷控制UI界面
允许if/else在容器组件内使用,通过条件渲染语句构建不同的子组件。if、else if后跟随的状态判断中使用的状态变量值变化时,条件渲染语句会进行更新。
if(条件){
组件
}else{
组件
}
ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。循环渲染使用ForEach迭代数组,为每个数组项创建相应的组件,能够快速的创建出组件,常用于需要显示很多组件(例如:排行榜)
ForEach有三个参数,第一个为数组。第二个为子组件生成函数,为数据源中的每个数组项生成子组件。第三个为键值生成器,用于给数据项生成唯一且稳定的键值。
ForEach(this.product, //第一个参数
(item) => { //
Row() { // 第二个参数
Text(item).fontSize(30) //
} //
}, (item) => { //第三个参数
return item
})
一路寒风身如絮, 命海沉浮客独行。坚信自己能行,华为近期大力鼓励学习鸿蒙语言,我们与全国高校共同学习,资源也是一样,为什么我们不行?接下来我们将做一个简单的跳转案例。