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

网站视频怎么下载到本地网站站点管理在哪里

网站视频怎么下载到本地,网站站点管理在哪里,wordpress做管理网站,在家做私房菜的网站Kotlin Multiplatform--01:项目结构基础 引言Common CodeTargetsExpected 和 actual1.使用函数2.使用接口 引言 以下为使用 Android Studio 创建的默认 Kotlin Multiplatform 的项目结构,本章将对项目结构进行简单介绍,让读者对 Kotlin Multi…

Kotlin Multiplatform--01:项目结构基础

    • 引言
    • Common Code
    • Targets
    • Expected 和 actual
        • 1.使用函数
        • 2.使用接口

引言

        以下为使用 Android Studio 创建的默认 Kotlin Multiplatform 的项目结构,本章将对项目结构进行简单介绍,让读者对 Kotlin Multiplatform 项目能够有一个大概的认识。
                


Common Code

        Common Code 是指与平台无关的代码,比如业务逻辑等。在项目结构中对应 commonMain 文件夹。需要注意的是,Common Code 不能使用任何与平台相关的 API ,比如 java.io.File 等,也不能添加任何与平台相关的依赖库。但可以使用专门为 Kotlin Multiplatform 设计的 Kotlin 库,比如 kotlinx.coroutines 等。

Targets

        Target 指需要将项目编译到哪个平台上,比如 JVM, JS, Android, iOS, or Linux 等。需要注意:平台相关的代码可以调用 Common Code,但 Common Code 中不能调用平台相关的代码。在 build.gradle.kts 文件中配置,如下所示:

kotlin {androidTarget() // Declares a target that corresponds to Android phonesiosArm64() // Declares a target that corresponds to 64-bit iPhonesmacosArm64() // Declares a target that corresponds to Modern Apple Silicon-based Macs
}

        声明编译目标后,还需要在项目中新建相应的文件夹和文件,命名规则为xxxMain,还需要在里面新建名为 kotlin 的子文件夹,放该平台相关的源代码。因为我在默认项目结构上额外声明了 macosArm64 的目标,所以需要新建一个 macosMain 文件夹,如下所示:
                

        最后在 build.gradle.kts 中的 sourceSets 中可以配置不同目标的依赖库文件,如下所示:

    sourceSets {androidMain {//put your multiplatform dependencies hereimplementation("xxx")}commonMain.dependencies {//put your multiplatform dependencies hereimplementation("xxx")}iosMain.dependencies {//put your multiplatform dependencies hereimplementation("xxx")}macosMain.dependencies { //put your multiplatform dependencies hereimplementation("xxx")}}

Expected 和 actual

        有时候我们确实需要在 Common Code 中调用平台相关的代码,并在不同的平台下有不同的表现该如何处理呢?

1.使用函数

        在 CommonMain 中声明一个 except 函数,供其他 Common Code 使用:

package identityclass Identity(val userName: String, val processID: Long)expect fun buildIdentity(): Identity

        在不同平台中使用 actual 进行不同的实现,比如在 jvm 中进行以下实现:

package identityimport java.lang.System
import java.lang.ProcessHandleactual fun buildIdentity() = Identity(System.getProperty("user.name") ?: "None",ProcessHandle.current().pid()
)

        在 POSIX 系统中进行以下实现:

package identityimport kotlinx.cinterop.toKString
import platform.posix.getlogin
import platform.posix.getpidactual fun buildIdentity() = Identity(getlogin()?.toKString() ?: "None",getpid().toLong()
)
2.使用接口

        在 CommonMain 中声明一个 Identity 接口和 buildIdentity 函数,供其他 Common Code 使用:

// In the commonMain source set:
expect fun buildIdentity(): Identityinterface Identity {val userName: Stringval processID: Long
}

        在不同平台中使用 actual 进行不同的实现,比如在 jvm 中进行以下实现:

// In the jvmMain source set:
actual fun buildIdentity(): Identity = JVMIdentity()class JVMIdentity(override val userName: String = System.getProperty("user.name") ?: "none",override val processID: Long = ProcessHandle.current().pid()
) : Identity

        在 POSIX 系统中进行以下实现:

// In the nativeMain source set:
actual fun buildIdentity(): Identity = NativeIdentity()class NativeIdentity(override val userName: String = getlogin()?.toKString() ?: "None",override val processID: Long = getpid().toLong()
) : Identity

文章转载自:

http://AMOI9u2s.jbztm.cn
http://pxSL7sPF.jbztm.cn
http://qrnKrLK7.jbztm.cn
http://GCdJrzBS.jbztm.cn
http://uCSXPs1d.jbztm.cn
http://FufKwdJ0.jbztm.cn
http://QlGTdkIX.jbztm.cn
http://aC02tUyQ.jbztm.cn
http://9T55SZMf.jbztm.cn
http://jqIbYdj6.jbztm.cn
http://9JX43zOB.jbztm.cn
http://xzUyKj9g.jbztm.cn
http://PGwwZt8u.jbztm.cn
http://eTOD3Era.jbztm.cn
http://t1WNPirE.jbztm.cn
http://XX8p6heK.jbztm.cn
http://E7SWlXf6.jbztm.cn
http://hXgTwXrL.jbztm.cn
http://hq8Ao6L9.jbztm.cn
http://4ZALhu3r.jbztm.cn
http://nZvApbil.jbztm.cn
http://sC7hIUQx.jbztm.cn
http://DjJ6acGc.jbztm.cn
http://Q0rgpcUT.jbztm.cn
http://GNquv4tQ.jbztm.cn
http://3bRFE3ik.jbztm.cn
http://th3FcnjW.jbztm.cn
http://diePskXN.jbztm.cn
http://t0AyWZMQ.jbztm.cn
http://137rOhHJ.jbztm.cn
http://www.dtcms.com/wzjs/649105.html

相关文章:

  • 做网站需要的法律知识WordPress无刷新登录
  • 建企业网站程序系统单位的网站建设费如何核算
  • 西安 餐饮 网站建设如何创建一个和淘宝一样的网站
  • 佛山网站如何制作重庆建设工程质量监督检测中心
  • 做电脑系统的网站好wordpress怎么弄背景
  • 中小型网站建设咨询今天的新闻联播文字版
  • 潢川微信网站建设怎么做游戏代理
  • 如何网站后台清理缓存编写html的软件
  • 设计师网站建设宠物网站建设内容
  • 手机网站建设一般多少钱手机网站转换小程序
  • 西安市住房和城乡建设局门户网站搜索引擎网站排行榜
  • 百度网站优化排行中国企业100强排名
  • 南京电子商务网站建设织梦免费企业网站
  • 农家乐网站设计费用北京icp网站备案
  • 织梦可以做家教网站吗网站建设留言板的实现
  • 网站 开发 工具教育网站开发需求分析
  • 电商网站建设免费深圳住房建设局网站首页
  • 网站开发如何dw中小手定制开发电商网站建设多少钱
  • 外贸网站需要多少个语言甘肃省兰州市城乡建设厅网站
  • 网站定制那个好南充市租房子信息网
  • 服务器建设网站软件下载网络科技公司一般都是骗
  • 长治制作网站企业官网首页图片
  • 查信息的网站有哪些网页游戏网站手机
  • 做企业网站 需要那些功能wordpress突然打不开
  • 电子商务网站建设的定义郑州政策最新消息
  • 本地建站工具动漫网页设计模板素材
  • 基于php的网站开发流程图网站新闻审核怎么做
  • 直播视频网站开发建造师证书查询官网
  • 阳泉网站建设网站网站服务器租用协议
  • 政务服务网站建设方案大型企业网站设计案例