在Kotlin中,处理可空值的惯用方式是什么,引用或转换它们

如果我有一个可空typesXyz? ,我想引用它或将其转换为不可为空的typesXyz 。 Kotlin这样做的习惯用法是什么? 例如,这个代码是错误的: val something: Xyz? = createPossiblyNullXyz() something.foo() // Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Xyz?" 但是,如果我先检查null是允许的,为什么呢? val something: Xyz? = createPossiblyNullXyz() if (something != null) { something.foo() } 假如我知道它确实从不为null ,我该如何将值更改或视为非null而不要求if检查? 例如,在这里我从地图中检索一个值,我可以保证存在,并且get()的结果不为null 。 但是我有一个错误: val map = mapOf("a" to 65,"b" to […]

UnicodeDecodeError,无效的连续字节

为什么下面的项目失败? 为什么用“latin-1”编解码器成功? o = "a test of \xe9 char" #I want this to remain a string as this is what I am receiving v = o.decode("utf-8") 结果是: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 […]

如何在一个NSAttributedString中创build一个可点击的链接

使超链接在UITextView可点击是微不足道的。 您只需在IB的视图中设置“检测链接”checkbox,并检测http链接并将其转换为超链接。 但是,这仍然意味着用户看到的是“原始”链接。 RTF文件和HTML都允许你设置一个用户可读的string,并在其后面有一个链接。 将属性文本安装到文本视图(或UILabel或UITextField )很容易。但是,如果该属性文本包含链接,则该链接不可点击。 有没有办法让用户可读的文本在UITextView , UILabel或UITextField ? SO的标记是不同的,但这里是一般的想法。 我想要的是这样的文字: 这个变形是由Face Dancer生成的,点击查看app store。 我唯一能得到的就是: 这个变形是用Face Dancer生成的,点击http://tinyurl.com/facedancer在app store中查看。

static_cast <>和C风格铸造有什么区别?

有什么理由更喜欢static_cast<>比C风格铸造? 他们是否等同? 他们有什么样的速度差异?

jquery禁用表单提交input

我在我的页面有以下JavaScript似乎并没有工作。 $('form').bind("keypress", function(e) { if (e.keyCode == 13) { e.preventDefault(); return false; } }); 我想禁用提交input表单,或者更好的是,打电话给我的Ajax表单提交。 任何一种解决scheme都是可以接受的,但是我上面包含的代码并不妨碍表单提交。

为什么更改finally块中的返回variables不会改变返回值?

我有一个简单的Java类,如下所示: public class Test { private String s; public String foo() { try { s = "dev"; return s; } finally { s = "override variable s"; System.out.println("Entry in finally Block"); } } public static void main(String[] xyz) { Test obj = new Test(); System.out.println(obj.foo()); } } 而这个代码的输出是这样的: Entry in finally Block dev 为什么在finally块中不会覆盖s ,但控制打印输出?

获取URL查询string

从下面格式化的URL查询string中获取参数的“less需要代码”方法是什么? www.mysite.com/category/subcategory?myqueryhash 输出应该是: myqueryhash 我知道这个方法: www.mysite.com/category/subcategory?q=myquery <?php echo $_GET['q']; //Output: myquery ?>

free和malloc如何在C中工作?

我试图找出如果我试图释放一个“从中间”的指针会发生什么,例如,看看下面的代码: char *ptr = (char*)malloc(10*sizeof(char)); for (char i=0 ; i<10 ; ++i) { ptr[i] = i+10; } ++ptr; ++ptr; ++ptr; ++ptr; free(ptr); 我得到一个未处理的exception错误信息的崩溃。 我想知道为什么和如何自由工作,以便我不仅知道如何使用它,而且能够理解奇怪的错误和exception,并更好地debugging我的代码 非常感谢

如何在固定的时间间隔后重复执行Async任务

如何使Async任务在一段时间间隔之后重复执行,就像Timer …其实我正在开发一个应用程序,它将自动从服务器上下载所有最新的未读问候语,为此我必须在经过一些固定的时间间隔….我知道,可以通过计时器轻松完成,但我想使用asynchronous任务,我认为是更有效的android应用程序。

如何解决不加载的VSTO插件?

我的VSTO Outlook加载项突然停止在一个客户机器上工作(它不加载,没有错误信息),我坚持排除故障。 该机器是Windows 7 x86,Outlook 2007.该加载项是使用Visual Studio 2008编写的,并将VSTO 2005与2003 PIA一起使用(因为我们还需要支持Outlook 2003)。 它在其他机器上工作得很好。 以下是我试图获得有用的故障排除输出: 添加VSTO_SUPPRESSDISPLAYALERTS环境variables(设置为0 ) 。 用pipe理权限启动Outlook。 看看事件日志。 没有。 加载项只是不会加载没有给出任何迹象的原因。 我也检查了“通常的嫌疑犯”(CAS政策,PIA安装,LoadBehavior在registry中,重新安装VSTO和加载项)。 其他一些观察: registry中的LoadBehavior保持在3 。 该加载项在Outlook中显示为“禁用”。 在“COM加载项”中检查其checkbox只是不做任何事情(没有错误,当再次input表单时,checkbox被再次清除)。 它在其他客户机器上工作得很好,而且在这台机器上工作得很好。 (不,客户不能告诉我他的机器上发生了什么变化) 我有一个Trace.WriteLine消息在我的代码的最上方( ThisAddIn_Startup处理程序的第一行),没有达到(我用DebugView检查)。 因此,不加载的原因在我的加载项中不是例外,而是VSTO加载加载项或加载VSTO的失败。 而不是更多的随机debugging(“试试这个…”,“试试…”),我真的想强迫Outlook和/或VSTO告诉我什么是错的 ,即给我一个有用的错误信息,而不是试图启用加载项时什么也不做 。 有任何想法吗?