HarmonyOS 鸿蒙Next在类中声明了一个带横杠的变量,constructor中怎么取这个值?
HarmonyOS 鸿蒙Next在类中声明了一个带横杠的变量,constructor中怎么取这个值?
例如,class Text {
public ‘a-b’ : string
constructor(c: string) {
this.[‘a-b’] = c
}
}
这种情况会报错,应该怎么给’a-b’赋值呢?
使用Object()
代码
class MyText60 {
public 'a-b': string
constructor(c: string) {
Object(this)[‘a-b’] = c
}
}
@Entry
@Component
struct Page60 {
build() {
Column() {
Button(‘测试’).onClick(() => {
let mText = new MyText60(‘测试123’)
console.info(a-b:${<span class="hljs-built_in"><span class="hljs-built_in">Object</span></span>(mText)[<span class="hljs-string"><span class="hljs-string">'a-b'</span></span>]}
)
})
}
.height(‘100%’)
.width(‘100%’)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
打印
a-b:测试123
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
谢谢
在HarmonyOS(鸿蒙)或任何Java/Kotlin支持的环境中,Java变量命名不允许直接使用横杠(-)作为标识符的一部分。如果看到代码中有类似带横杠的变量名,这通常是通过某种方式(如注解或XML配置)间接表示的,或者是使用了某种命名约定(如驼峰命名法来模拟横杠,例如myVariableName
代替my-variable-name
)。
对于直接在Java或Kotlin类中声明的变量,你需要遵循合法的命名规则。如果需要在constructor中访问该变量,只需按照正常变量名访问即可。如果确实需要处理类似带横杠的标识符(在XML等资源文件中常见),则通常在代码中通过转换或映射来处理。
如果问题依旧没法解决请加我微信,我的微信是itying888。