有ArkTS函数基础,很重要!

756 阅读5分钟

ArkTS中函数的声明与调用

函数的基础

1.定义和作用

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

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

2.函数声明

函数声明通常包括函数名、参数列表、返回类型和函数体。

//函数声明
fnnction 函数名() {
  函数体
}
 
函数名()  //调用函数
3.示例:
//声明函数
function sum() {
  let res: number = 10 + 20
  console.log('相加的结果是:', res)
}
 
sum() //调用函数 输出结果
注意点:
  1. 函数定义的时候,{ }里面的方法体 不会被执行
  2. 函数被调用时,方法体才会被执行
  3. function 定义的方法 是会被提到最前面执行

函数的参数形式

1.定义和作用

定义:数的参数形式指的是函数在定义和调用时传递参数的不同方式。

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

  • 1.定义函数(形参)

    • function 函数名 ( 形参1:类型 ,形参2:类型,,, ) { }
  • 2.调用函数(实参)

    • 函数名 ( 实参1 ,实参2,,, )
2.区分:

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

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

3.示例:
// 定义带有参数的函数
function sum(num1: number, num2: number) {
  let res: number = num1 + num2
  console.log("相加的结果是:", res)
}
 
// 调用函数
sum(20, 30) //相加的结果是:50
sum(15,25) //相加的结果是:40
可选参数形式(扩展)

函数在定义的时候,设置了形参入口,但是在调用的时候并不是任何时候都需要传入实参数据,为了避免报错,我们可以将形参设置为可选参数, 或者给形参设置一个默认值

//语法: 形参名?:类型
function sayHi(msg?: string) {
  console.log('打招呼:', msg)
}
 
sayHi('Hello') //传了实参
sayHi()   //没有传实参(如果形参不设置可选,就会出现报错)
参数形式——赋默认值(扩展)

在一些情况下,形参的数值不能为 undefined, 否则容易引起程序的崩溃,否则其计算的结果不能使用到业务逻辑当中. 这时候就需要使用到默认值的形式了

function sum(x: number = 0, y: number = 0) {
  let res: number = x + y
  return res
}
 
console.log('结果是', sum()) //没有实参,则默认传入 0 0  结果是:0
console.log('结果是', sum(1, 2)) //结果是:3

函数的返回值

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

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

使用步骤:
    1. 在函数方法体内部 通过 return 将结果返回
    1. 在调用这个函数的时候:使用一个变量来接收它的返回结果

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

示例:
// 函数的返回值
function sum(num1: number, num2: number) {
  let res: number = num1 + num2
  // 返回res的结果(才在外部使用)
  return res
}
 
//调用的时候,先存储返回值,再使用返回值
let resNum: number = sum(100, 200)
console.log("res的值为:", resNum)
注意点:
  • 返回值 return 一般写在函数体的最下面
  • 函数内一旦写了 return ,那么 return 后面的代码不再执行
  • 调用的时候,先存储返回值,再使用返回值

箭头函数

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

  • 场景:

    • 在ArkUI阶段,给一个元素注册事件的时候,都是使用箭头函数
1.不带参数
  • 语法:

    • let 函数名 = ()=> { }
let preName=() =>{
  console.log("李白")
}
preName()
2.带参数的箭头函数
  • 语法:

    • let 函数名 = (参数:类型)=> { 方法体 }
let preName2=(name:string)=>{
  console.log(name)
}
preName2("杜甫")
3.有参数有返回值的写法
  • 语法:

    • let 函数名 = (参数:类型)=> { 方法体 return }
let preName3=(name:string)=>{
  return name
}
 
let resName:string =preName3("苏轼") // 接收返回值
 
console.log(resName) // 打印结果

函数声明方式和调用方法总结

声明方式:
  • 1.不带参数

    • 场景:方法体的代码 完全固定,没有变化
    • 形式:function 函数名 ( ) { 方法体 }
  • 2.带参数

    • 场景:方法体的执行逻辑是可变化的,从外部传进来的,运算是固定的
    • 形式:function 函数名 ( 形参 : 类型,,, ) { 方法体 }
  • 3.带返回值

    • 场景:当一个函数体之后,需要将这个返回值 给函数外部使用

    • 形式:

      • function 函数名 ( ) { 方法体 return 结果 }
      • function 函数名 ( 形参 : 类型,,, ) { 方法体 return 结果 }
  • 4.综合的写法

    • 场景:既有形参又有返回值的这种写法
    • 形式:function 函数名 ( 形参 : 类型,,, ) { 方法体 return 结果 }
调用函数:
  • 函数名 ( )      //基础调用函数
  • 函数名 ( 实参 )     //函数一定要有形参来接收
  • 函数一旦调用,就可以获取函数内部的执行结果,如果没有 return关键字 则返回一个具体的数据
  • 如果为空,则默认返回的是 undefined

小结:

函数是一种封装代码块,可以通过声明(无参数、有参数、有返回值、综合写法)来定义,并通过调用(基础调用或传递实参)来执行,执行结果可通过return返回或默认返回undefined。


你的点赞就是我持续更新最大的动力!

#HarmonyOS #鸿蒙开发