我正在查看這個 ULID 生成器https://wvlet.org/airframe/docs/airframe-ulid但我不太確定如何將 ULID 轉換為 UUID。我已經嘗試了下面的代碼,希望前 48 位看起來相似,但這些位看起來是隨機的
scala> import java.util.UUID
scala> import wvlet.airframe.ulid.ULID
scala> (0 to 100).map(_ => UUID.nameUUIDFromBytes(ULID.newULID.toBytes))
val res36: IndexedSeq[java.util.UUID] = Vector(3d938b6f-167d-3915-9491-ca20400efc24, 72b562fa-7866-3401-ae8d-10fabf43864d, b60d0802-bf77-3cc3-a3de-fc1943fcdd8c, 4189103e-f284-3da3-a4ac-f43381197e64, c58829d6-31dc-33ed-accb-c76022b85f05, 765ed5fb-9542-332b-8ae7-eb00a4a4e313, a2fcbfd9-28be-374d-b7bc-97ade744e0f5, 50056d54-2eb7-3a50-bc91-ccbf279ef989, b49b8a86-ab8c-3e82-b06e-00460a5b600b, bb965b65-03bb-3785-a77b-4a858f190de1, 47e980bc-48b0-37ed-8d39-af3769f7758a, 57cf5eae-996b-3f1a-a24f-2594287f9c83, be38a6f3-df4d-31e5-9521-0078526fb6a5, fb1fa782-311d-322f-b902-ddf318f971c6, b64c5980-624e-3ea6-8813-94f8329fec32, 4c368e3d-3448-3d56-b8bd-abd84bc62d8a, aad5500b-720a-3445-8b06-e0e5b721ee5f, fb774e2c-9966-33be-bc59-6e88cd095178, 8265102b-e8fe-381f-bd51-49660dd63c13, 6b...
uj5u.com熱心網友回復:
未經測驗且不是很干凈:
import java.util.UUID
import wvlet.airframe.ulid.{ULID, CrockfordBase32}
val ulid = ULID.newULID
val (hi, lo) = CrockfordBase32.decode128bits(ulid.toString)
val uuid = new UUID(hi, lo)
UUID沒有將 16 位元組陣列轉換為UUID. 您需要將陣列轉換為 2 個 long(2x 8 個位元組)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384766.html
標籤:斯卡拉
上一篇:你如何把火和忘記未來變成理解?
下一篇:制作dplyr程序的自定義函式
