我正在阅读一篇与slashdot故事相关的文章,发现了这个小窍门:
以Java的最新版本为例,该版本试图通过提供无穷指针测试的简写语法来简化空指针检查。只需在每个方法调用中添加一个问号,就会自动包括对空指针的测试,从而替换了鼠的if-
then语句的嵌套,例如: ``public String getPostcode(Person person) { String ans= null; if (person != null) { Name nm= person.getName(); if (nm!= null) { ans= nm.getPostcode(); } } return ans }
有了这个: ``
public String getFirstName(Person person) { return person?.getName()?.getGivenName(); }
我已经搜索了互联网(好吧,我花了至少15分钟在“
java问号”上搜索了各种变体),但一无所获。所以,我的问题是:是否有任何官方文件?我发现C#有一个类似的运算符(“
??”运算符),但是我想获取我正在使用的语言的文档。或者,这仅仅是我所使用的三元运算符的一种用法从没见过。
谢谢!
编辑:链接到文章:http : //infoworld.com/d/developer-world/12-programming-
mistakes-avoid-292
最初的想法来自groovy。它是针对Java 7提出的,作为Project
Coin的一部分:https
:
//wiki.openjdk.java.net/display/Coin/2009+Proposals+TOC(猫王和其他Null-
Safe运算符),但尚未被接受。
提出了相关的Elvis运算符?:的x ?: y
简称x != null ? x : y
,特别适用于x是复杂表达式的情况。
Lua是一种为 Sandboxing (沙箱) 准备语言。 Safe Lua 让您轻松地使用Lua代码的沙箱创建和许多有趣的用途。 Lua is a language well prepared for sandboxing. Safe Lua lets you easily create and use sandboxes for Lua code for numerous interesting purposes.
safe-rm 是一个安全的文件删除工具,当因为误输入要删除某个系统目录时,该工具会阻止这种行为。
Password Safe是一个在国外拥有几百万用户的免费开源软件,软件同样采用开源的Twofish加密算法代码合成开发。该软件由一群致力于为公众开发免费应用软件 的国外民间组织提供。软件有多种平台版本和不同功能组合分类,根据不同版本其中包含了全世界的各种先进加密算法,如:PGP、AES、DES、IDEA、 Yubikey等。 该软件为其组织主要功能版本,提供用户保存日常各领域用户密码和提供强大的
指向指针的指针是多个间接或指针链的形式。 通常,指针包含变量的地址。 当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,它指向包含实际值的位置,如下所示。 必须声明一个指向指针的指针的变量。 这是通过在其名称前面放置一个额外的星号来完成的。 例如,以下是声明指向int类型指针的指针的声明 - int **var; 当目标值由指针指向间接指向时,访问该值需要应用星号运算符两次,如下例所示
指向指针的指针是多个间接或指针链的形式。 通常,指针包含变量的地址。 当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,它指向包含实际值的位置,如下所示。 必须声明一个指向指针的指针的变量。 例如, type iptr = ^integer; pointerptr = ^ iptr; 以下示例将说明概念并显示地址 - program exPointertoPointers;
指向指针的指针是多个间接或指针链的形式。 通常,指针包含变量的地址。 当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,它指向包含实际值的位置,如下所示。 必须声明一个指向指针的指针的变量。 这是通过在其名称前面放置一个额外的星号来完成的。 例如,以下是声明指向int类型指针的指针的声明 - int **var; 当目标值由指针指向间接指向时,访问该值需要应用星号运算符两次,如下例所示