百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Harmony OS开发-ArkTS语言速成三(ar开发教程)

itomcoil 2025-04-05 19:25 10 浏览

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前!


1.ArkTS基础语法

1.1 常量

常量:用来存储数据 (不可变) 写法:const 常量名: 类型 = 值 示例:

 Button("查看常量").onClick(()=>{
        // 常量 值不能更改的 使用:const
        const name="程序员Feri"
        console.log("Feri-常量",name)
      }).width("100%").margin(20)

1.2 命名规则

1.只能包含数字、字母、下划线、$,不能以数字开头

2.不能使用内置关键字或保留字 (比如 let、const)

3.严格区分大小写

1.3 数组

1.概念

数组:是一个容器,可以存储多个数据,这些元素可以是任何类型,包括原始类型(如number、string、boolean等)和对象类型(如object、class实例等)。

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

2.声明

可以使用以下几种方式来声明数组:

1.类型注解:

使用类型注解来指定数组中元素的类型

2.数组泛型:

使用泛型来定义数组,其中Array表示数组中元素的类型

示例:

 Button("数组变量").onClick(()=>{
        // 数组声明 2种方式
        //1.类型注解
        let arr1:string[]=["我爱Feri","必须关注","铁粉一枚!"]
        console.log("Feri-数组",arr1)
        //2.数组泛型
        let arr2:Array =[1,3,5,7]
        console.log("Feri-数组",arr2)

        console.log("Feri-数组索引",arr1[1])

      }).width("100%").margin(20)

通过索引访问数组的时候,切记索引是从0开始的

3.数组的常用函数

push(): 向数组的末尾添加一个或多个元素,并返回新的长度。

pop(): 删除数组的最后一个元素,并返回那个元素。

shift(): 删除数组的第一个元素,并返回那个元素。

unshift(): 向数组的开头添加一个或多个元素,并返回新的长度。

slice(): 返回数组的一个部分,原数组不会被修改。

splice(): 通过删除现有元素和/或添加新元素来更改数组的内容。

map(): 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数。

filter(): 创建一个新数组,包含通过所提供函数实现的测试的所有元素。

reduce(): 对数组中的每个元素执行一个由您提供的“reducer”函数(接受四个参数:累加器accumulator、当前值currentValue、当前索引currentIndex和源数组array),将其结果汇总为单个返回值。

示例:

  Button("数组操作").onClick(()=>{
        // 数组声明 2种方式
        //1.类型注解
        let arr1:string[]=["我爱Feri","必须关注","铁粉一枚!"]
        console.log("Feri-数组",arr1)
        //2.数组泛型
        let arr2:Array =[1,3,5,7]
        //删除并返回最后一个元素
        console.log("Feri-数组,删除并返回最后一个元素",arr2.pop())
        //添加
        arr2.push(108)
        //删除并返回第一个元素
        console.log("Feri-数组,删除并返回第一个元素",arr2.shift())
        //获取指定索引的元素
        console.log("Feri-数组索引",arr1[1])
        //数组条件过滤
        console.log("Feri-数组", arr2.filter((e)=>{
          return e>3
        }))
        console.log("Feri-数组",arr2)
      }).width("100%").margin(20)

2.函数

2.1 函数是什么

函数是一段可重复使用的代码块,用于执行特定的任务。与JavaScript中的函数类似,但增加了类型系统和一些额外的特性,使得函数更加健壮和安全。

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

2.2 函数的定义

1.定义(声明)

函数需要先定义,才可以调用,那么函数的定义格式如下所示:

  function 函数名(参数名:参数数据类型,……):
  函数返回值的数据类型 {
  
  函数体
  
  [return 返回值;]
}

2.参数

函数可以有参数,也可以没有参数

其中参数的作用:函数能够接收和处理外部的数据,提高函数的灵活性和通用性

其中参数根据定义时和调用时又分为:

● 实参:真实数据(函数调用时候的传入的真实数据)

● 形参:形式上的参数(函数定义时候写的参数)


3.返回值

函数可以有返回值也可以没有返回值

返回值作用:将函数的执行结果传递给其他部分使用(函数外部)。

默认情况下,函数外部无法直接使用函数内部执行结果;

如果想要在函数外部使用内部执行结果,需要将这个结果设置为函数的返回值。

2.3 匿名函数 VS 箭头函数

1.概念:

你们函数:没有函数名的函数,通常用作回调或立即执行

箭头函数(Arrow Functions)是ES6(ECMAScript 2015)中引入的一种编写函数表达式的新语法。提供了一种更简洁的方式来书写函数,并且在某些情况下,与传统的函数表达式有所不同,尤其是在this的绑定上。

2.格式

箭头函数:使用箭头(=>)语法,使得函数定义更加简洁。

  (param) => { /* ... */ }

匿名函数:使用传统的function关键字,通常看起来更冗长。

function (param) { /* ... */ }

3.this绑定

箭头函数:不绑定自己的this,它会捕获其所在上下文的this值。这意味着箭头函数内部的this与外围函数的this保持一致。

匿名函数:有自己的this值,它通常取决于函数的调用方式。例如,在对象方法中,匿名函数的this通常指向该对象。

4.arguments对象

箭头函数:不绑定arguments对象。如果需要访问函数参数,必须使用剩余参数(...args)。

匿名函数:有自己的arguments对象,可以用来访问函数的所有参数。

5.构造函数

箭头函数:不能用作构造函数,尝试使用new操作符将会抛出错误。

匿名函数:可以作为构造函数使用,可以与new关键字一起创建新的对象实例。

6.原型属性

箭头函数:没有prototype属性。

匿名函数:有prototype属性,可以用来添加方法或属性。

7.返回对象字面量

箭头函数:如果箭头函数的函数体是一个对象字面量,需要用圆括号包裹起来,否则它会被视为一个块语句。例如:() => ({ key: 'value' })

匿名函数:可以直接返回对象字面量,不需要额外的圆括号。例如:function () { return { key: 'value' }; }

2.4 函数的使用

1.定义函数

定义3种类型:

1.无参无返回值类型

2.有参无返回值类型

3.有参有返回值类型

示例:

  
  //无参无返回值
function fun1(){
  console.log("Feri-函数","无参无返回值类型")
}
//有参无返回值
function fun2(num1:number,num2:number){
  console.log("Feri-函数,求和=",num1+num2)
  console.log("Feri-函数","有参无返回值类型")
}
//有参有返回值
function fun3(num1:number,num2:number):number{
  return num1+num2
  
}

2.使用函数(函数调用)

示例:

 Button("无参无返回值函数").onClick(()=>{
        fun1()
      }).margin(20)
      Button("有参无返回值函数").onClick(()=>{
        fun2(1,2)
      }).margin(20)
      Button("有参有返回值函数").onClick(()=>{
        console.log("Feri-函数,有参有返回值",fun3(128,168))
      }).margin(20)

效果:

好啦,本篇文章就到这里啦,感谢各位的观看,关注我,跟着我一起翱翔Harmony OS的开发旅途!

相关推荐

字节三面:MySQL数据同步ES的4种方法!你能想到几种?

如何进行数据同步MySQL是一种流行的关系型数据库,而Elasticsearch是一个强大的搜索引擎和分析平台。将MySQL数据同步到Elasticsearch中可以帮助我们更方便地搜索和分析数据。在...

Java 连接 MySQL 数据库(java连接mysql课设)

一、环境准备1.1依赖管理(Maven)在项目的pom.xml中添加MySQL驱动依赖:<dependency><groupId>mysql</gro...

Spring Boot 连接 MySQL 数据库(spring boot配置数据库连接)

一、环境准备1.1依赖管理(Maven)<!--方案1:JdbcTemplate--><dependency><groupId>org.sprin...

java连接mysql数据库达成数据查询详细教程

前言:本篇文章适用于所有前后端开发者众所周知,只要是编程,那肯定是需要存储数据的,无论是c语言还是java,都离不开数据的读写,数据之间传输不止,这也就形成了现代互联网的一种相互存在关系!而读写存储的...

既然有MySQL了,为什么还要有MongoDB?

大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?让我们一起,一探究竟,了解一下MongoDB的特点和基本用法,...

用 JSP 连接 MySQL 登入注册项目实践(JSP + HTML + CSS + MySQL)

目录一、写在前面二、效果图三、实现思路四、实现代码1、login总界面2、registercheck总代码3、logoutcheck总代码4、amendcheck总代码相关文章一、写在前面哈喽~大家好...

MySQL关联查询时,为什么建议小表驱动大表?这样做有什么好处

在SQL数据库中,小表驱动大表是一种常见的优化策略。这种策略在涉及多表关联查询的情况下尤其有效。这是因为数据库查询引擎会尽可能少的读取和处理数据,这样能极大地提高查询性能。"小表驱动大表&...

mysql8驱动兼容规则(mysql8.0驱动)

JDBC版本:Connector/J8.0支持JDBC4.2规范.如果Connector/J8.0依赖于更高版本的jdbclib,对于调用只有更高版本特定的方法会抛出SQLFea...

mysql数据表如何导入MSSQL中(mysql怎样导入数据)

本案例演示所用系统是windowsserver2012.其它版本windows操作系统类似。1,首先需要下载mysqlodbc安装包。http://dev.mysql.com/downloa...

MySQL 驱动中虚引用 GC 耗时优化与源码分析

本文要点:一种优雅解决MySQL驱动中虚引用导致GC耗时较长问题的解决方法虚引用的作用与使用场景MySQL驱动源码中的虚引用分析背景在之前文章中写过MySQLJDBC驱动中的虚引用导致...

ExcelVBA 连接 MySQL 数据库(vba 连接sqlserver)

上期分享了ExcelVBA连接sqlite3数据库,今天给大家分享ExcelVBA连接另一个非常流行的MySQL数据库。一、环境win10Microsoftoffice2010(...

QT 5.12.11 编译MySQL 8 驱动教程- 1.01版

安装编译环境:qt5.12.11mysql8.0.28修改mysql.pro工程文件,编译生成动态库mysql.pro文件位置:D:\Alantop_Dir\alantop_sde\Qt\Qt5....

「Qt入门第22篇」 数据库(二)编译MySQL数据库驱动

导语在上一节的末尾我们已经看到,现在可用的数据库驱动只有两类3种,那么怎样使用其他的数据库呢?在Qt中,我们需要自己编译其他数据库驱动的源码,然后当做插件来使用。下面就以现在比较流行的MySQL数据库...

(干货)一级注册计量师第五版——第四章第三节(三)

计量标准的建立、考核及使用(三)PS:内容都是经过个人学习而做的笔记。如有错误的地方,恳请帮忙指正!计量标准考核中有关技术问题1检定或校准结果的重复性重复性是指在一组重复性测量条件下的测量精密度。检定...

声学测量基础知识分享(声学测量pdf)

一、声学测量的分类和难点1.声学测量的分类声学测量按目的可分为:声学特性研究(声学特性研究、媒质特性研究、声波发射与接收的研究、测量方法与手段的研究、声学设备的研究),声学性能评价和改善(声学特性评价...