【鸿蒙】HarmonyOS NEXT星河入门到实战2-ArkTS快速入门

news2024/11/25 3:31:00

目录

一、ArkTS基础快速入门

二、认识和存储数据 

2.1 认识数据

2.2 存储数据(变量、常量)

2.2.1 变量

2.2.2 常量(不可修改)

三、数组

四、函数-Function

4.1 函数的基本使用

4.1.1 定义函数

4.1.2 调用函数

4.2 函数的完整写法

4.3 箭头函数

五、接口&对象

六、对象-方法

七、联合类型

八、枚举类型

九、小技巧 

9.1 取消热更新

9.2 备份文件

9.3 复制

9.4 预览不能全屏问题

9.5 快速生成结构体

9.6 添加/取消注释

9.7 设置透明色

9.7.1 十六进制设置透明色

9.7.2 设置透明色

9.7.3 opacity设置透明度

9.8 动画animation

9.9 根据宽高比设置自动适应屏幕大小


前言:ArkTS快速入门,ArkTS:是一门用于开发鸿蒙应用的编程语言。

一、ArkTS基础快速入门

ArkTS:是一门用于开发鸿蒙应用的编程语言
简单的演示控制台输出

二、认识和存储数据 

2.1 认识数据

编程语言的核心是处理 数据
三种常见的基础数据类型:
① string 字符串:描述信息
② number 数字:计算
③ boolean 布尔:判断(真、假)

2.2 存储数据(变量、常量)

2.2.1 变量

变量:专门用来存储数据的容器

通过变量修改数据

// 学习日志输出内容,注意在控制台选phone
// console.log('春天的菠菜','鸿蒙开发学习者123')
// 变量的存储和修改
// 1 变量存储
// 1.1 字符串 string 类型
let title: string = '春天的菠菜'
console.log('输出的string类型:',title)
// 1.2 数字 number 类型
let age: number = 9
console.log('输出的number类型:',age)
// 1.2 布尔 boolean 类型
let isLogin: boolean = true
console.log('输出的boolean类型:',isLogin)
// 2 变量的修改
age = 20
console.log('输出的修改number类型:',age)
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

 

2.2.2 常量(不可修改)

常量:用来存储数据(不可改)

// 常量
const PI:number = 3.1415
const companyName: string = '特斯拉'
console.log('常量公司名:',companyName,'PI:',PI)

 //命名规则:
① 只能包含数字、字母、下划线、$,不能以数字开头 (重点)
②不能使用内置关键字或保留字(比如 let、const)
③ 严格区分大小写

三、数组

数组:是一个容器,可以存储多个数据,数据是有序的,编号(索引)从0开始

注意:数组指定的类型和存储的数据类型要必须一致,否则会报错

四、函数-Function

函数:是可以被重复使用的代码块

作用:函数可以把具有相同或相似逻辑的代码“包裹”起来,有利于代码复用

4.1 函数的基本使用

4.1.1 定义函数

4.1.2 调用函数

注意:先定义,后使用(变量、函数都是如此)

// 学习函数
// 1  定义函数
function star(){
  console.log('*')
  console.log('**')
  console.log('***')
  console.log('****')
  console.log('*****')
}
// 2 调用函数
star()

4.2 函数的完整写法

根据我们传入不同的数据,进行处理,返回处理后的结果。

// 完整的函数
function buy(price: number,num:number){
  //1  处理数据
  let result: number = price * num
  // 2返回结果
  return result
}
// 2 调用函数
let apple:number = buy(3,5)
console.log('苹果:',apple)

4.3 箭头函数

箭头函数是 比普通函数 更简洁 的一种函数写法

普通函数和箭头函数,在后面开发中会有不同的使用场景,所以两种语法都需要掌握 

// 学习函数
// 箭头函数

let star = ()=>{
  console.log('*')
  console.log('**')
  console.log('***')
  console.log('****')
  console.log('*****')
}
// 2 调用函数
star()


let buy = (price: number,num:number) =>{
  //1  处理数据
  let result: number = price * num
  // 2返回结果
  return result
}
// 2 调用函数
let apple:number = buy(3,5)
console.log('苹果:',apple)

五、接口&对象

对象:是一个可以存储多个数据容器。

作用:用于描述一个物体的特征和行为。

1.通过 interface 接口约定 对象结构类型
2.定义对象并使用

// 定义一个对象
// 姓名:春天的菠菜  年龄:9 体重:20

// 1  定义接口
interface Person{
  name: string
  age: number
  weight: number
}

//  2 基于接口,定义对象
let bocai:Person = {
  name: '春天的菠菜',
  age: 9,
  weight: 20
  }

//   3 获取对象属性值,对象名.属性名
console.log('体重:',bocai.name,'年龄:',bocai.age)

// 基于接口,可以定义多个对象,这些对象有着相同的结构类型
let jsz:Person = {
  name: '金手镯',
  age: 19,
  weight: 100
}
console.log('体重:',jsz.name,'年龄:',jsz.age)

六、对象-方法

方法作用:描述对象的具体行为

// 定义一个对象
// 特征: 姓名:春天的菠菜  年龄:9 体重:20
// 行为: 唱歌、跳舞

// 1  定义接口
interface Person{
  name: string
  age: number
  weight: number
  // 定义方法的类型
  sing: (song: string)=> void
  dance: () => void
}

//  2 基于接口,定义对象
let bocai:Person = {
  name: '春天的菠菜',
  age: 9,
  weight: 20,
  // 定义方法
  sing: (song: string) =>{
    console.log('小七说','我喜欢唱',song)
  },
  dance: () => {
    console.log('我喜欢跳舞1')
  }
}

//   3 调用对象里面的方法

bocai.sing('大香蕉')
bocai.dance()

七、联合类型

联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据

// 定义一个对象,存放《年终考试评价》
// 考试评价:可能是具体的分数,也可能是A\B\

let judge: number | string = 100
judge = 'A+'
judge = '优秀'
console.log('年终等级是:', judge)

let gender: 'man' | 'woman' | 'secret' = 'man'

八、枚举类型

枚举类型是一种特殊的数据类型,约定变量只能在一组数据范围内选择值。

// 利用枚举类型,给变量设置主色
// 取色范围:
// 红色: '#ff0f29',
// 橙色: '#ff7100'
// 绿色: '#30b30e'
//  1 定义枚举(定义常量列表)

enum ThemeColor{
  Red = '#ff0f29',
  Orange = '#ff7100',
  Green = '#30b30e'
}
//  2 给变量设置枚举类型
let color: ThemeColor = ThemeColor.Red
console.log('COLOR',color)

九、小技巧 

9.1 取消热更新

点击这里1取消热更新,需通过重载2显示更新内容

9.2 备份文件

复制Index.ets即可

9.3 复制

Ctrl +D

9.4 预览不能全屏问题

import window from '@ohos.window';


onPageShow(): void {
    window.getLastWindow(AppStorage.get("context"), (err, data) => {
      if (err.code) {
        console.error('Failed to get last window. Cause:' + JSON.stringify(err));
        return;
      }
      data.setFullScreen(true)
    });
  }

9.5 快速生成结构体

输入entry + tab

@Entry
@Component
struct {
  build() {


  }
}

补上Index 即可

@Entry
@Component
struct Index {
  build() {


  }
}

9.6 添加/取消注释

ctrl + /  添加取消 // 注释

ctrl + shift + / 添加取消  /*  */多行的注释

9.7 设置透明色

9.7.1 十六进制设置透明色

设置颜色之后,按步骤1 2 3进行

9.7.2 设置透明色

.backgroundColor(Color.Transparent) //透明背景色

9.7.3 opacity设置透明度

.opacity(0)

9.8 动画animation

只要有状态改变,就可设置动画

.animation({
  duration: 1000
})

9.9 根据宽高比设置自动适应屏幕大小

首先根据图片计算宽高比

 

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

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

相关文章

leetcode 2576.求出最多标记下标

2576.求出最多标记下标 题意: 解析: 数组长为 n n n,因为一次标记两个,所以数组中最多有 ⌊ n 2 ⌋ \lfloor \frac{n}{2}\rfloor ⌊2n​⌋ 对标记。 贪心的考虑,一个数 x 一定优先与满足 y ≥ 2 x y \ge 2x y≥2…

驱动(RK3588S)第十一课时:linux内核定时器和poll轮询

目录 学习目标一、内核的定时器1、定时器概念2、定时器的作用与分类3、定时器API函数1、初始化定时器核心结构体2、定时器核心结构体3、向内核注册定时器资源用于激活定时器4、删除定时器的资源5、这是改变定时器时间的函数,如果在指定的定时器(timer)没超时前调用&…

测评造假?Mistral首个多模态模型Pixtral 12B发布

测评造假?Mistral首个多模态模型Pixtral 12B发布! 近日,法国人工智能(AI)初创公司Mistral于9月11日宣布推出其首款多模态AI大模型——Pixtral 12B,成功吸引了全球科技界的广泛关注。这款集图像与文本处理能…

IO流的使用

一、IO流的体系 二、代码应用 import java.io.*;public class Demo05 {public static void main(String[] args) throws IOException {copy1(); //1 使用原始的字节流按照一个一个字节的形式复制文件。copy2(); //2 使用原始的字节流按照字节数组的形式复制文件。copy3(); //3…

论文:AOP框架安全框架-系统架构师(六十六)

1详细论述安全架构设计中鉴别框架和访问控制框架设计内容,并论述鉴别框架和访问控制所面临的主要威胁,说明其危害。 解析: 鉴别框架有用户密码鉴别、生物特征鉴别和多因素鉴别。 用户密码鉴别可以采用验证登入的用户账号是否正确。 生物特…

SOMEIP_ETS_093: SD_Check_Reboot_Detection_separate_multicast_and_unicast

测试目的: 验证DUT(Device Under Test)能够检测到客户端在发送多播(Multicast)和单播(Unicast)时执行了重启。 描述 本测试用例旨在确保DUT能够区分客户端在多播和单播情况下的重启行为&…

刷题活动(旋转和翻转)

前两天打了CCPC网络赛(让打老实了),现在认识到了刷题的重要性,于是我开创了这么个栏目,我们一起刷一下题。 还是在ACwing网站上刷题 旋转和翻转 首先,申一下题目,输入一个数字 n ,来…

Linux | 进程控制(上):进程终止(strerror函数、errno宏、_exit() 与 exit())

文章目录 进程控制1、进程终止1.1进程常见退出方法退出码1.1.1 strerror函数 & errno宏1.1.1 _exit函数_exit和exit的区别结合现象分析: 进程控制 1、进程终止 1.1进程常见退出方法 进程退出场景 代码运行完毕,结果正确代码运行完毕,结…

计算机网络 数据链路层 3

以太网:采用CSMA/CD载波监听多路访问/冲突检测 基带总线局域网规范 以太网提供无连接,不可靠服务: 无连接:事先不必建立链路 不可靠:发送方的数据帧不进行编号,接收方接收信息后不向发送方发送ACK&#x…

深度神经网络DNN、RNN、RCNN及多种机器学习金融交易策略研究|附数据代码

全文链接:https://tecdat.cn/?p37668 原文出处:拓端数据部落公众号 分析师:Aijun Zhang 在当今的金融领域,量化交易正凭借其科学性和高效性逐渐成为主流投资方式之一。随着大数据技术的蓬勃发展,量化交易借助先进…

en造数据结构与算法 c#语言 数组实现队列很难???看我一击破之!!!

队列的特点就是先入先出 这回不像栈那样只需要瞄准最后一个坑了 你要入队的话&#xff0c;肯定要加到最后一个坑上&#xff0c;所以要守住最后一个坑 但是&#xff0c;你只有最后一个坑的标记还不行&#xff0c;因为出队你得退出第一个坑不是么 public class SimpleQueue<…

前端开发之迭代器模式

在前端开发中&#xff0c;设计模式是提升代码可读性、可扩展性和可维护性的关键。迭代器模式&#xff08;Iterator Pattern&#xff09;是行为型设计模式中的一种&#xff0c;能够让我们顺序访问一个集合中的元素&#xff0c;而不暴露其底层的结构。在 TypeScript 这样具有类型…

空间解析几何 1 :空间中直线、圆、椭圆的方程表示

所谓空间解析几何&#xff0c;就是在三维空间中&#xff0c;求两个图形的空间关系&#xff0c;如距离&#xff0c;夹角&#xff0c;这一张给出常用的三个图形&#xff0c;直线&#xff0c;圆&#xff0c;椭圆的空间方程&#xff0c;后面会经常用到。 下一章&#xff1a;空间解析…

APP渗透思路小记

免责声明:本文仅做分享! 目录 协议 反代理 反证书 真实手机抓包: 1-查看本地pc 的 ip. 2-打开bp,配置 ip 及 端口. 3-手机设置代理: 4-手机访问 ip:port 5-安装证书 检查抓包 模拟器抓包: 开源移动端扫描工具 mobsf AppinfoScanner Frida r0capture proxifier…

新能源汽车 BMS 学习笔记篇——如何选择继电器 MOS 管作为开关

序&#xff1a;继电器和 MOSFET&#xff08;俗称 MOS 管&#xff09;都可以用作 BMS&#xff08;Battery Management System&#xff0c;电池管理系统&#xff09; 中控制电池充放电的开关&#xff0c;但它们在原理、结构和特性上存在一些区别&#xff0c;以下总结它们之间主要…

如何本地部署Ganache并使用内网穿透配置公网地址远程连接测试网络

目录 前言 1. 安装Ganache 2. 安装cpolar 3. 创建公网地址 4. 公网访问连接 5. 固定公网地址 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊如何本地部署Ganache并使用内网穿透配置公网地址远程连接测试网络&#xff0c;欢迎大家点赞 &a…

rocm Linpack 编译构建系统解析

0. 购买amd显卡&#xff0c;安装rocm 1, 编译 rocHPL 下载源码&#xff1a; $ git clone --recursive https://github.com/ROCm/rocHPL.git 编译&#xff1a; $ cd rocHPL/ $ ./install.sh --prefix${PWD}/../local/ 会自动 git clone blit,ucx,opempi, $ ./mpirun_rochpl …

【hot100-java】【接雨水】

R8-双指针篇 转战java后端的第一天&#xff0c;学点java语法&#xff08;手动狗头&#xff09; 这题之前写过多种解法 下面我们使用前后缀分离法解决。 class Solution {public int trap(int[] height) {int n height.length;//表示height[0]到height[i]的最大值int[] pre…

【mechine learning-七-线性回归之成本函数】

监督学习之cost function 成本函数权重、偏置如何实现拟合数据成本函数是如何寻找出来w和b&#xff0c;使成本函数值最小化&#xff1f; 在线性回归中&#xff0c;我们说到评估模型训练中好坏的一个方法&#xff0c;是用成本函数来衡量&#xff0c;下面来详细介绍一下 成本函数…

3D技术在电商独立站中的应用有哪些?

3D技术在电商独立站中的应用日益广泛&#xff0c;为电商行业带来了全新的商品展示方式和购物体验。以下是3D技术在电商独立站中的具体应用及其带来的优势&#xff1a; 一、商品3D展示 1、沉浸式体验&#xff1a; 通过3D技术&#xff0c;商品可以在独立站上以三维形式呈现&…