关于两段类Java代码的陌生语法咨询:[,]与?.用法及所属语言
代码片段语法解析
问题1:public void replacePixel(Pixel[,] pixels) {....}
[,]的作用:用于声明矩形二维数组,表示数组的每一行元素数量完全一致,是规整的矩阵结构,和Java里的交错数组(Pixel[][],每行长度可不同)语法逻辑有区别。- 所属语言:该语法属于C#,Java不支持这种矩形数组的声明方式,这也是Java编译器无法运行这段代码的原因。
问题2:void saveClicked(){file?.load(image);}
?.的作用:这是空值条件运算符(空安全调用运算符),会先判断左侧的file对象是否为null:若file不为null,则正常调用load(image)方法;若file为null,整个表达式直接返回null,不会执行后续方法调用,以此避免空指针异常。- 所属语言:该运算符在C#(C# 6.0及以上版本支持)、Kotlin、Swift等语言中都有实现,结合第一段代码的风格,这段代码大概率也属于C#。
内容的提问来源于stack exchange,提问作者Fibien
相关产品推荐
相关产品推荐

