首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin 1.2 的新增了哪些特性?

这也使得可调用的引用在你引用外部接收者的成员的 lambda 中更方便使用。...破坏性变更:try 块后面的 sound smart casts 早些时候,Kotlin 使用了 try 块中的赋值,以在块之后进行 smart casts,这可能会破坏类型及 null 值的安全性并导致运行时失败...Kotlin 1.2 中的警告所取代,并且在 Kotlin 1.3 中这将会提示是错误的。...的平台类型上调用 x.equals(null) 时,如果 x 为 null,则会不正确地返回 true。从 Kotlin 1.2 开始,在平台类型的空值上调用 x.equals(...)...破坏性变更:通过内联的扩展接收器修复平台的 null 转义 在平台类型空值上调用的内联扩展函数并没有检查接收器是否为 null,并因此允许 null 转义到其他代码中。

2.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django 字段类型_access的数据库类型是

    有一个额外的可选参数:max_length,字段的最大长度,以字符为单位。最大长度在django的验证中使用强制执行MaxLengthValidator。...l 存储在数据库中的所有文件都是该文件的路径(相对于MEDIA_ROOT)。如果ImageField调用了,则mug_shot可以使用来获取摸板中图像的绝对路径。...默认表单小部件是Textarea,如果指定max_length属性,将反映在Textarea自动生成的表单字段中。...此字段的默认表单小部件是TextInput。 像所有CharField子类一样,URLField采用可选 max_length参数。如果未指定 max_length,则使用默认值200。...例如:如果有一个可为空的字段,并且在删除引用的对象时将其设置为空,如 user = models.ForeignKey( ​ User, ​ models.SET_NULL, ​

    3.9K30

    【Kotlin】扩展函数总结 ★ ( 超类扩展函数 | 私有扩展函数 | 泛型扩展函数 | 扩展属性 | 定义扩展文件 | infix 关键字用法 | 重命名扩展函数 | 标准库扩展函数 )

    Kotlin 代码文件中有效 , 在其它的 Kotlin 代码中就无法调用了 ; 代码示例 : 在 Hello.kt 代码中 , 使用 private 定义了 Any 超类的扩展函数 , 在本代码中的...; 注意下面的调用细节 : 如果定义的 扩展函数 是 为 非空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时使用 " ?....非空类型扩展函数 如果定义的 扩展函数 是为 可空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时直接使用 " . " 进行调用即可 ; 可空类型实例对象.可空类型扩展函数 代码示例...= abc, 接收者不为空 123abc this = null, string = abc, 接收者为空 abc 八、使用 infix 关键字修饰单个参数扩展函数的简略写法 ---- 如果 扩展函数...只有 一个参数 , 并且在 扩展函数 定义时 使用了 infix 关键字修饰 , 在调用该扩展函数时 , 可以省略 接收者与函数之间的点 和 参数列表的括号 ; 调用 使用 infix 关键字修饰 的

    2.8K30

    大话 JavaScript(Speaking JavaScript):第十六章到第二十章

    如果我们在块结束后尝试访问它,将会得到编译错误。 相比之下,JavaScript 的变量是函数作用域的:只有函数引入新的作用域;在作用域方面忽略了块。...func2时,this是undefined,导致错误。...2:覆盖影响调用方法 函数getOwnProperty()在obj上调用了方法hasOwnProperty()。...对于这个构造函数,new 是可选的:以普通函数的方式调用它(不带 new)与以构造函数的方式调用它是一样的。 创建一个给定长度的空数组 给定长度的空数组中只有空洞!...)); // 12 如果你在一个只有一个元素的数组上调用reduce,那么该元素会被返回: > [7].reduce(add) 7 如果你在一个空数组上调用reduce,你必须指定initialValue

    40420

    Kotlin | 作用域函数

    当你在提供了 lambda 表达式的对象上调用此类函数时,它会形成一个临时作用域。在此作用域内,你可以在不使用其名称的情况下访问该对象,这些函数被称为作用域函数。...另一方面,如果省略了 this ,你就很难区分你操作的函数或变量是外部对象的还是接收者的了,所以,context 对象作为一个接收者(this)这种方式推荐用于调用接收者(this) 的成员变量或函数。...let context 对象作为闭包参数(it)传入,返回值是闭包结果。 let 可用于在调用链的结果上调用一个或多个函数。...= "Hello" // processNonNullString(str) // 编译错误: str 为可空对象,要求参数为不可空对象 val length = str?....这些函数允许你在调用链中嵌入对象状态的检查。 这两个函数的作用是对象过滤器,takeIf 返回满足条件的对象或 null。takeUnless 则刚好相反,它返回不满足条件的对象或 null。

    95630

    阿里巴巴写进Java开发手册里推荐的JUC工具类:LongAdder,确定不点进来学一下嘛?

    如果更新失败(或 cells 数组已存在),则获取一个随机索引,并尝试更新对应 Cell 的值。...如果 Cell 未初始化、为空或更新失败(存在竞争或者cell数组在扩容),则调用 longAccumulate 方法处理更复杂的累加逻辑 让我们继续来看longAccumulate这个方法,先介绍一下传入的参数...开始尝试调用casBase操作来往base中写值。如果成功就结束本次循环。 顶层的分支介绍完了,现在就只剩下情况一的小分支了。...= null && (n = cs.length) > 0) { Cell c; //case1.1:如果当前线程对应的cell是空,就走初始化的这一套...由于这些更新操作是并发进行的,所以在调用 sum() 方法时,可能有些更新尚未完成,从而导致返回的总和不是最新的精确值。 在读完这个类之后,其实越来越发现JUC的底层很多类的设计思想是共通的。

    7400

    避开NullPointerException的10条建议

    虽然看起来是个小错误,但带来的影响却不小,Tony Hoare(null 引用的发明者)在 2009 年说过 NPE 大约给企业造成数十亿美元的损失。在这工作半年内,我就踩了好几次 NPE 的坑。...概述的 6 个可能发生情况: 在空对象上调用实例方法。...对空对象调用静态方法或类方法时,不会报 NPE,因为静态方法不需要实例来调用任何方法; 访问或更改空对象上的任何变量或字段时; 抛出异常时抛出 null; 数组为 null 时,访问数组长度; 数组为...(1)尽量避免在未知对象上调用 equals() 方法和 equalsIgnoreCase() 方法,而是在已知的字符串常量上调用 由于 equals() 和 equalsIgnoreCase() 具有对称性...,避免返回 null,而应是空集合或空数组 返回空集合或空数组时,可以保证调用方法(如 size()、 length())不会出现 NPE。

    2.1K30

    Java面试集锦(一)之Java异常

    Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2. Java中的异常处理关键字是什么 java异常处理中使用了四个关键字。...throws:当我们在方法中抛出任何已检查的异常而不处理它时,我们需要在方法签名中使用throws关键字让调用者程序知道该方法可能抛出的异常。...我们应该在尝试检索元素之前先检查数组的长度,否则它可能会ArrayIndexOutOfBoundException在运行时抛出。RuntimeException是所有运行时异常的父类。 4....请注意,RuntimeException是Exception的子类。 已检查的异常是需要在代码中处理的错误方案,否则您将收到编译时错误。...未经检查的异常主要是由编程不良引起的,例如在对象引用上调用方法时的NullPointerException,而不确保它不为null。例如,我可以编写一个方法来从字符串中删除所有元音。

    1K40

    Kotlin概述与Java的比较

    在Kotlin系统中,系统只拒绝编译尝试分配或返回null的代码考虑以下示例 – 代码审查不是问题 – 科特林更注重可读性的语法,所以代码审查不是一个问题,它们仍然可以由那些不熟悉语言的团队成员完成...Kotlin语言的特点 十亿美元的错误是正确的。 如上所述,Kotlin避免了空指针异常。 如果我们尝试分配或返回null到变量或函数,那么它将不会编译。...考虑以下示例 – 你也可以喜欢在Docker和Kubernetes上部署Kotlin应用程序 Kotlin和Java之间的区别 空安全 Null Safety– 如上节所述,Kotlin...数据类 Data Classes– 在Kotlin中有数据类,它们导致自动生成样板,如equals,hashCode,toString,getter / setter等等。...现在我们可以在任何MutableList 上调用这样一个函数 – 智能Casts – 当谈到Casts时,Kotlin编译器真的很聪明。

    3K10

    详解cn.sample.mnn.detect Alibc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR),

    这个错误通常与内存访问相关,并且是一个严重的错误,可能导致应用崩溃。...可能的原因包括:空指针引用:应用程序尝试使用一个空指针(null),而不是有效的对象或数据。对已释放内存的引用:应用程序尝试访问已经释放的内存区域。...内存越界访问:应用程序尝试访问超出分配给它的内存范围的地址。内存泄漏:应用程序在执行过程中持续分配内存而不释放,最终导致内存耗尽并引发错误。...通常情况下,这是由于以下几种原因导致的:空指针引用:在代码中使用了未初始化的指针或null指针进行访问。内存越界:访问了超出分配给程序的内存范围的地址。重复释放:对已经释放的内存进行了再次释放。...栈溢出:递归调用层级过深,导致栈空间不足。 要解决 mnn.detect A/libc 错误,以下是一些可能的解决方法:检查指针和引用:确保在使用指针或引用之前对其进行正确的初始化,避免空指针引用。

    79110

    rfc7230 Message Syntax and Routing

    不幸的是,一些用户代理不能够正确地编码或在相关的超文本中没有包含空白字符,这样会导致在请求目标中混入一些非法的字符。...接收者不应该尝试自动修正并处理请求(非重定向),无效的请求行可能是被蓄意构造来穿透请求链上的安全防护。 HTTP没有定义请求行的长度(2.5章节)。...任何大于或等于0的Content-Length字段都是有效的。由于没有对载体的长度进行事先约束,接收者必须能够处理可能导致整型溢出的长度值。...通常是因为这些服务需要通过要求带有content-length的网关进行调用,且服务端不能或不期望在处理前缓存整个请求。...接收者必须忽略(或认为是一个错误)禁止发送在trailer中的消息(这类消息可能会通过外部安全过滤泄露出去) 。

    97140

    Java 中的 null 到底是什么?

    在 Java 中,null 是一个非常常见的关键字,用于表示“没有值”或“空”。然而,对于初学者来说,null 的本质可能会感到有些困惑。...这意味着该变量没有指向任何有效的内存地址,因此它不指向任何对象。如果尝试在 null 引用上调用任何方法或字段,则会引发 NullPointerException 异常。...当试图调用 str.length() 时,将抛出 NullPointerException 异常。null 的用途在 Java 中,null 有许多用途。以下是一些常见的用途:1....以下是一些常见的问题:1. 可能引发 NullPointerException如果尝试在 null 引用上调用任何方法或字段,则会引发 NullPointerException 异常。...这可以在编译时很难发现,因此需要小心处理 null 引用。2. 可能导致代码复杂性在使用 null 时,可能需要添加一些额外的逻辑来检查是否为空。这可能会使代码变得更加复杂,并增加错误的机会。3.

    1.1K00

    Kotlin语法基础之运算符

    在Kotlin语言中一切皆对象,出现NPE则是致命性的问题。所提,在Kotlin语言中提出了预先判空处理,为此引用了两个操作符:判空操作符“?”、 强校验“!!”操作符。 预定义,是否能容纳空(?)...var a: String = "abc" var aLength = a.length // 放心调用,a肯定不会为null 同样的操作,我们则不能够对b字符串进行操作,对于可能为空的类型进行操作,我们就必须判空...length}") 咋一看,差别不是很大,但,null安全,在链式调用中很有用。...另一个选择是使用安全的类型转换,如果尝试转换不成功则返回 null: val aInt: Int? = a as?...为接收者 T 查找一个带有 operator 修饰符的无参函数 unaryPlus(),即成员函数或扩展函数。 3. 如果函数不存在或不明确,则导致编译错误。 4.

    3K50

    听GPT 讲Go源代码--chan.go

    类似地,在接收者需要从通道中接收数据时,如果缓冲区为空,则接收者会被阻塞等待发送者向缓冲区中发送数据。在此期间,接收者也会被加入到阻塞队列中。...如果等待过程中通道被关闭,那么直接唤醒接收方协程并返回已关闭通道的错误 如果等待过程中接收方协程被取消等待或者唤醒,那么唤醒通道保留等待这个通道的接收方协程数量的变量,然后唤醒接收方协程并返回调用者指定的错误...raceaddr 在Go语言的并发编程中,由于goroutine的异步执行,对共享资源的访问很容易出现数据竞争,从而导致程序的错误或者崩溃。...它可以避免由于并发访问数据而导致的数据竞争bug,这些bug会错误地修改或引用共享数据,导致程序出现不确定的运行结果。...在Go语言中,使用通道(Channel)来协调不同的goroutine非常常见,但是在通道的使用过程中存在着一些竞争条件,例如多个goroutine同时尝试对同一个通道进行读写操作,这时就可能导致数据的混乱或者死锁

    24140

    Kotlin 1.2 新特性

    val button = findViewById(R.id.button) as Button 智能转换 当一个变量为某个安全表达式(如校验非空)所赋值时,智能转换也同样运用于这个安全调用的接收者。...的简写 为了简化调用成员的引用,现在可以不用this关键字,::foo而不用明确的接收者this::foo。...这也使得可调用的引用在你引用外部接收者的成员的lambda中更方便。 弃用 Kotlin1.2版本也弃用了很多不合理的东西。...返回不正确true时x为空。从Kotlin 1.2开始,调用x.equals(…)一个平台类型的null值会抛出一个NPE (但是x == …不会)。...内联扩展空修复 在以前的版本中,在平台类型的空值上调用的内联扩展函数没有检查接收器是否为null,并因此允许null转义到其他代码中。

    1.7K100

    NullPointerException : Attempt to invoke a method on a null object reference 完美解决方法

    今天的主题是大家在Java开发中经常遇到的经典错误:NullPointerException(简称NPE)。这个错误通常发生在尝试对null对象调用方法时,它不仅困扰新手,也会让经验丰富的开发者头疼。...这个错误通常会出现在我们试图调用一个尚未初始化或被赋值为null的对象的方法时。本文将通过深入探讨导致这个错误的原因,并结合代码示例,帮助大家更好地理解如何避免和处理NPE。⚙️ 正文内容 1....{ // 类定义 } 当你尝试在null对象上调用方法或访问其字段时,Java虚拟机(JVM)将会抛出这个异常。...导致NullPointerException的常见原因 2.1 对未初始化的对象调用方法 在对象尚未被初始化或赋值之前,试图调用其方法是导致NPE的最常见原因。...表格总结 错误原因 解决方案 调用未初始化的对象方法 在调用前检查是否为null 遍历空数组或集合 在循环前确认集合不为空 操作返回null的函数结果 使用Optional类包装可能为null的返回值

    18510
    领券