当前位置: 首页 > wzjs >正文

石家庄优化搜索引擎优化seo培训

石家庄优化,搜索引擎优化seo培训,新疆网站建设推广,免费的网页域名大家吼哇!就在三小时前,Kotlin v2.1.20 发布了,更新的内容也已经在官网上更新:What’s new in Kotlin 2.1.20 。 我粗略地看了一下,下面为大家选出一些我比较感兴趣、且你可能也会感兴趣的内容。 注意!这里…

大家吼哇!就在三小时前,Kotlin v2.1.20 发布了,更新的内容也已经在官网上更新:What’s new in Kotlin 2.1.20 。
我粗略地看了一下,下面为大家选出一些我比较感兴趣、且你可能也会感兴趣的内容。

注意!这里只选了一些标准库中的一些API之类的变化,不会包括诸如编译器变动、工具(例如Gradle)变化等。

Atomic API

现在,在 Kotlin 的标准库中可以使用原子类啦!在之前,想要使用原子类型,要么只能在 JVM 平台中使用,要么需要自己手动实现,很麻烦,现在 Kotlin common API 中为标准库添加了 kotlin.concurrent.atomics 包,其中包括了一些原子类型。
现在,你可以在任何Kotlin支持的平台上使用原子类型了!

以下是官方示例:

@OptIn(ExperimentalAtomicApi::class)
suspend fun main() {// Initializes the atomic counter for processed itemsvar processedItems = AtomicInt(0)val totalItems = 100val items = List(totalItems) { "item$it" }// Splits the items into chunks for processing by multiple coroutinesval chunkSize = 20val itemChunks = items.chunked(chunkSize)coroutineScope {for (chunk in itemChunks) {launch {for (item in chunk) {println("Processing $item in thread ${Thread.currentThread()}")processedItems += 1 // Increment counter atomically}}}}

如果你熟悉Java中的原子API,那么对这些新增类型的使用肯定不会陌生。而提到 Java,这些原子类型也一如既往地提供了与 Java 类型互换的API asJavaAtomicasKotlinAtomic

@OptIn(ExperimentalAtomicApi::class)
fun main() {// Converts Kotlin AtomicInt to Java's AtomicIntegerval kotlinAtomic = AtomicInt(42)val javaAtomic: AtomicInteger = kotlinAtomic.asJavaAtomic()println("Java atomic value: ${javaAtomic.get()}")// Java atomic value: 42// Converts Java's AtomicInteger back to Kotlin's AtomicIntval kotlinAgain: AtomicInt = javaAtomic.asKotlinAtomic()println("Kotlin atomic value: ${kotlinAgain.load()}")// Kotlin atomic value: 42
}

UUID

这个版本中,标准库针对之前版本增加的 UUID 类型进行了一些增强和调整。

简单来说:

  1. 改善了 parse() 的效果,现在不带 - (破折号) 的 UUID 也能解析了。
  2. 增加了一些语义更明确的函数:parseHexDash(), toHexDashString()
  3. UUID 实现 Comparable,也就是说现在 UUID 是可以排序或者进行比较的了,比如使用 sorted() 或使用操作符 <> 等。

以下是官方示例:

@OptIn(ExperimentalUuidApi::class)
fun main() {// parse() accepts a UUID in a plain hexadecimal formatval uuid = Uuid.parse("550e8400e29b41d4a716446655440000")// Converts it to the hex-and-dash formatval hexDashFormat = uuid.toHexDashString()// Outputs the UUID in the hex-and-dash formatprintln(hexDashFormat)// Outputs UUIDs in ascending orderprintln(listOf(uuid,Uuid.parse("780e8400e29b41d4a716446655440005"),Uuid.parse("5ab88400e29b41d4a716446655440076")).sorted())}

新的时间跟踪API

在 2.1.20 中,添加了一些原本只在 kotlinx-datetime 中才有的API。这下子在标准库中操作时间终于要变得更简单了,还不需要额外的依赖。

KMP库狂喜!

  • 引入了同 kotlinx.datetime.Clock 的接口 kotlin.time.Clock
  • 引入了同 kotlinx.datetime.Instant 的接口 kotlin.time.Instant

当然,一如既往,它们也有与 Java 和 JS 进行相互转化的API:

  • JVM 平台中 InstanttoKotlinInstant()toJavaInstant()
  • JS 平台中使用 Instant.toJSDate() 可以将 Instant 转化为 JS 的 Date

以下是官方示例:

import kotlin.time.*@OptIn(ExperimentalTime::class)
fun main() {// Get the current moment in timeval currentInstant = Clock.System.now()println("Current time: $currentInstant")// Find the difference between two moments in timeval pastInstant = Instant.parse("2023-01-01T00:00:00Z")val duration = currentInstant - pastInstantprintln("Time elapsed since 2023-01-01: $duration")
}

结尾

以上就是主要的标准库变化啦!其他的变化内容也有不少,感兴趣的话可以去官网了解喔,这些变化里我最喜欢的就是 atomic API 和 time API 进入标准库了,为 KMP 库作者省了不少事儿呢。

不说了,我又得跟进更新我的编译器插件 kotlin-suspend-transform-compiler-plugin、继续跟编译器插件搏斗了,我们下次见,爱你♥

http://www.dtcms.com/wzjs/230710.html

相关文章:

  • 建设网站招标文件巧克力软文范例200字
  • 商丘做网站推广如何设计网站的首页
  • 企聚网站建设百度收录技术
  • 惠来做网站诈骗aso优化渠道
  • 响应式网站建设信息域名停靠
  • 建新建设集团有限公司网站北京网站推广排名服务
  • 做企业网站要多少钱怎么自己做网址
  • wordpress 开源插件北京seo优化排名推广
  • 国际网站怎么进百度下载安装免费下载
  • 做网站话术网络营销项目策划方案
  • 网站建设案例效果seo优化托管
  • 什么企业时候做网站优化大师电视版
  • 北京做网站便宜的公司哪家好黄页引流推广网站
  • 公司的网站建设费用属于什么费seo整站优化服务教程
  • b2c模式的电商网站有哪些百度站长工具收费吗
  • 深圳建设工程信息网站百度网盘搜索免费资源
  • 四省网站建设游戏推广平台
  • 中企中立做的网站好吗郑州竞价托管
  • 三门峡网站建设费用网络营销运营推广
  • 管理一个网站的后台怎么做网络公司网站
  • 惠普gen8可以做网站吗百度的网址是多少
  • wordpress 书店宁波企业seo推广
  • 延吉做网站培训机构招生方案模板
  • 论坛上怎么做网站优化关于手机的软文营销
  • 洛阳市伊滨区建设局网站百度下载免费
  • 张家口网站建设开发结构优化设计
  • 莱芜网站建设服务太原seo全网营销
  • 新疆乌鲁木齐市建设委员会网站在线收录
  • 徐州金网网站建设小程序开发平台有哪些
  • 铁岭市网站建设公司如何宣传推广