killme2008 / aviatorscript

A high performance scripting language hosted on the JVM.
http://fnil.net/aviator/
4.44k stars 830 forks source link

[建议]支持null-safety引用变量 #608

Open HasonHuang opened 8 months ago

HasonHuang commented 8 months ago

版本:5.4.1 建议:支持 Null-Safety 引用变量。

例如:a 为 null 时不会抛出空指针。

a?.b

2022-11 有小伙伴已经建议过。

image
killme2008 commented 8 months ago

嗯,可以下个大版本支持下,看我春节有没有时间

deific commented 7 months ago

这种写法也就是js中的可选链运算符(?.),建议实现是也实现空值合并运算符,也就是最后可??后跟一个默认值。如:let a= b?.c.d?.e ?? 10; 如果b或d或e不存在时,返回默认值10。

HasonHuang commented 2 months ago

如楼上所说默认值,希望可以同时支持 Elvis 运算符(Groovy, Spring SpEL 支持)。

displayName = user.name ? user.name : 'Anonymous'   // 三元运算符
displayName = user.name ?: 'Anonymous'              // Elvis 运算符
displayName = user?.name ?: 'Anonymous'             // Null-Safety 与 Elvis 运算符一起使用
killme2008 commented 2 months ago

想实现,最近没时间,争取下个大版本吧。