HarmonyOS 鸿蒙Next 空的无返回值的函数也能在判断语句里面用吗?
HarmonyOS 鸿蒙Next 空的无返回值的函数也能在判断语句里面用吗?
如图,submitArrow
是一个空的无返回值的方法吧??他为什么能被用进if语句里面啊??也没有返回值。。。那判断算是什么void
不就是无返回值状态吗。。
更多关于HarmonyOS 鸿蒙Next 空的无返回值的函数也能在判断语句里面用吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
打印
myFunc:A
myFunc:B
myFunc:C
myFunc:D
myFunc:E
this.submitArrow_6:undefined
myFunc:F
结论
【1】要把submitArrow当成是一个属性而不是一个方法/函数,当这个属性类型为函数类型(非基本数据类型)时,加个()就能变成方法
【2】一个属性的语法固定为 属性名 : 属性类型 = 属性默认值。所以上述我写了6个属性,可以看出来 ()=>void 分别是submitArrow_4、5、6的属性类型,而不是属性值
【3】if语句里面判断的是属性值,这里是函数类型,注意判断的是函数本身(函数体)是否存在,而不是函数的返回值void是否存在
更多关于HarmonyOS 鸿蒙Next 空的无返回值的函数也能在判断语句里面用吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
啊,这样就说得通了,那这个函数本身存不存在的标准是什么呢。有这对花括号{}
就算true吗?还是说花括号里面必须有可执行语句。还是什么,
还有一点楼上这兄弟说的隐式转换和这个解释感觉完全不同啊,是都存在呢,还是不存在啊,
在ArkTS(JavaScript和TypeScript)中,函数是对象,并且任何非null、非undefined的值在布尔上下文中都被视为true。因此,即使是一个空函数(即函数体为空或只包含空白字符),它仍然被视为一个对象实例,在条件判断语句中会被隐式转换为true。
哈哈,如果你写过iOS,就发现这玩意儿是一样的,如果传了回调参数才执行
if (block) {
block();
}
执行函数得到null
或undefined
全都会被隐式转化成false
,可以去了解一下隐式转换。
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
这个隐式转换是js系特有的吗?我以前用java好像if里面必须是boolean类型的,
换句话说 不是null
和undefined
,是其他任何值 都算 true
啊?
ts和arkts都有
if里面必须是boolean类型对呀,其他值都会被隐式转化成布尔,
这里判断的是父组件有没有传递参数submitArrow,如果没传递,则子组件的this.submitArrow为undefined,则不执行该方法。
好吧 谢谢,
在HarmonyOS(鸿蒙)系统中,关于空的无返回值的函数能否在判断语句中使用的问题,其答案依赖于具体的编程语言和上下文环境。鸿蒙系统本身支持多种编程语言,包括但不限于其自主研发的方舟编译器所支持的语言。不过,由于问题明确要求不回答与Java或C语言相关的内容,我们将从更通用的编程概念来解答。
在大多数现代编程语言中,空的无返回值的函数(通常称为“过程”或“void函数”)不能直接用于判断语句。判断语句(如if语句)通常需要一个布尔表达式来决定执行哪段代码。而void函数不返回任何值,因此无法直接用作布尔表达式。
然而,如果void函数内部改变了某个状态或全局变量,而这个状态或变量的变化可以被用来间接地影响判断语句的结果,那么可以说void函数间接参与了判断逻辑。但严格来说,这并不是void函数本身在判断语句中的使用,而是其副作用被利用了。
在鸿蒙系统的开发实践中,如果需要在判断语句中基于某个操作的结果做决策,通常会通过调用返回布尔值的函数来实现,而不是直接使用void函数。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html