格式错误的UUID在Swift中失败,但在Kotlin中失败

时间:2019-12-14 03:13:40

标签: swift kotlin

在Swift中,如果运行此代码,则由于UUID格式错误,因此将显示“ nil”。

import Foundation
let id = "11111111-1111-1111-1111-badbad"
print(UUID(uuidString: id)) // prints nil

但是,在Kotlin中进行的相同测试不会失败:

import java.util.UUID

fun main() {
    val id = "11111111-1111-1111-1111-badbad"
    val uuid = UUID.fromString(id) // should fail; badly formatted uuid
                                   // but prints "11111111-1111-1111-1111-000000badbad"
    println(uuid)
}

在Kotlin中实现的UUID与在Swift中实现的UUID是否不同?

1 个答案:

答案 0 :(得分:1)

您必须为UUID提供正确格式的字符串

  

UUID(uuidString:“ 11111111-1111-1111-1111-badbad”)

您使用的代码UUID(uuidString: "11111111-1111-1111-1111-badbad")将返回nil,因为UUID的格式错误,还请注意,UUID仅针对真实设备而非iOS模拟器生成,因为硬件设备已向Apple网络注册访问设备令牌。

关于kotlin,现在,此val uuid = UUID.fromString(id)函数将从上面的字符串中返回新的UUID。您正在比较两个相反的函数,其中一个检查UUID是否有效,另一个检查从字符串生成UUID。

如果要检查格式错误的uuid,请在Kotlin中使用正则表达式功能。