kotlin

【秒懂Java】【第1章_初识Java】01_编程语言

╄→гoц情女王★ 提交于 2020-07-29 10:12:03
各位小伙伴们好哇!从今日起,我将开始更新 《秒懂Java》 系列文章,从0开始讲解Java的方方面面,后面也将推出 配套的视频版 ,欢迎大家保持关注! 我会尽力办到:在保证通俗易懂的同时,不丢失知识的严谨性和完整性 不管你是否有编程经验,只要你感兴趣、细心阅读,就能学会 本文是 《秒懂Java》 系列的第1篇文章,主要认识几个基础概念 什么是计算机? 一说到 计算机 (Computer),大家首先想到的可能是 电脑 (台式电脑、手提电脑)。 实际上,我们日常生活中使用的 平板电脑 、 智能手机 也属于计算机,它们的功能也跟电脑一样非常强大。 还有KTV的 点歌机 、超市的 自助收银机 等很多设备也都属于计算机。 毋庸置疑,计算机是人类历史上最伟大的发明之一,极大地提高了社会的生产力,目前它已经延伸到了生活、学习、工作等各个领域,无处不在。如今,我们会在计算机上安装各种各样的软件(应用、游戏),学习工作、衣食住行、吃喝玩乐一网打尽,极大地改变了我们的生活、学习、工作方式。 什么是编程语言? 语言 ,是双方进行沟通交流的主要表达方式。 如果我要跟咱们中国人进行交流,应该用汉语 如果我要跟美国人进行交流,应该用英语 如果我要跟韩国人进行交流,应该用韩语 那如果我要跟计算机进行交流呢?那就应该用 计算机编程语言 。 是的,计算机编程语言,就是用来跟计算机进行沟通交流的语言

【25】kotlin 枚举

≡放荡痞女 提交于 2020-07-29 07:43:04
实例可数的类,注意枚举也是类 可以修改构造,添加成员 可以提升代码的表现力。也有一定的性能开销 code package com.yzdzy.kotlin enum class LogLevel(val id: Int) { VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5); fun getTag(): String { return "$id,$name" } override fun toString(): String { return "$name,$ordinal" } } 就相当于下面的代码 class LogLevel2 protected constructor() { companion object { val VERBOSE = LogLevel2() val DEBUG = LogLevel2() val INFO = LogLevel2() val WARN = LogLevel2() val ASSERT = LogLevel2() } } fun main(args: Array<String>) { println(LogLevel.DEBUG.getTag()) //顺序 相当于索引index println(LogLevel.DEBUG.ordinal) //打印所有数据

NoActionBar主题下如何添加OptionsMenu

泄露秘密 提交于 2020-07-29 06:38:50
菜单无法显示 为了不显示标题栏,所以主题使用了 NoActionBar,这也直接导致选项菜单无处显示 解决方案 添加一个ToolBar,自定义标题栏 <androidx.appcompat.widget.Toolbar android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/main_menu_ebook" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"/> 以下为kotlin语法,如果你用的是java语法,结构有差,但核心代码是一样的 setSupportActionBar(mBinding.mainMenuEbook) 这里我使用了 ViewBinding,如果你没有开启,那就把 mBinding.mainMenuEbook 替换成 R.id.你的toolbar控件来使用 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)

【25】kotlin 密封类

落爺英雄遲暮 提交于 2020-07-29 06:29:46
子类可数(枚举是实例可数) <v1.1子类必须定义为密封类得内部类 v1.1子类只需要与密封类在同一个文件夹中 code package com.yzdzy.kotlin.SealedClass sealed class PlayerCmd { class Play(val url: String, val position: Long = 0) : PlayerCmd() class Seek(val position: Long = 0) : PlayerCmd() object Pause : PlayerCmd() object Resume : PlayerCmd() object Stop : PlayerCmd() } enum class PlayerStae { IDLE, PAUSE, PLAYING } 来源: oschina 链接: https://my.oschina.net/u/4321566/blog/4316306

Gartner 发布容器公有云竞争格局报告 | 纳比云原生资讯月报 Vol.11

匆匆过客 提交于 2020-07-29 05:26:19
一分钟速览新闻点 ☁ 云计算报告 ① Gartner 容器报告:阿里云与AWS并列第一 <推荐> ☁ 业界新闻 ② Istio将被捐赠给开源基金会 <推荐> ③ Kotlin gRPC 宣布开源 ④ CloudNativeSummit 召开 ⑤ KubeCon 2020 Shanghai 或开展线上活动 ⑥ CNCF 新增 81 位成员 ☁ 程序员专区 ⑦ Spring Cloud 2020.0.0-M1发布 <推荐> 云计算报告 01 Gartner 容器报告:阿里云与AWS并列第一 4月2日消息,国际知名调研机构Gartner发布2020年公有云容器报告,阿里云连续两年成为唯一入选的中国企业。Gartner 报告显示,阿里云容器服务在中国市场表现强劲,产品形态丰富,与 AWS 并列第一。 业界新闻 02 Istio将被捐赠给开源基金会 Istio 项目找到了理想的发展方向: Google Cloud CEO 表示将把 Istio 项目捐赠给基金会。 阅读更多 03 Kotlin gRPC 宣布开源 Kotlin 现在是第二流行的基于 JVM 的编程语言,Kotlin gRPC 的开源能够让 gPRC 的服务服务于 Kotlin 平台。 04 CloudNativeSummit 召开 4月7日,CloudNative 峰会在youtube上通过直播形式召开

【50】Kotlin的应用场景

两盒软妹~` 提交于 2020-07-29 05:25:52
Kotlin Script 后缀kts -gradle脚本。 java 虚拟机应用 -web应用,完美支持 -JavaFx,完美支持 前端开发 -1.1开始正式支持Kotlin-javaScript android 应用开发 -Kotlin目前的主要战场 Native 程序 -直接编译Kotllin代码为机器码,不依赖Jvm -支持与c代码交互 -技术预览版功能有限,前途无量。 来源: oschina 链接: https://my.oschina.net/u/4340449/blog/4321555

【58】 Kotlin 泛型中的 in 和 out

怎甘沉沦 提交于 2020-07-29 03:16:54
简评:在 Kotlin 中使用泛型你会注意到其中引入了 in 和 out,对于不熟悉的开发者来说可能有点难以理解。从形式上讲,这是一种定义 协变和逆变 的方式,这篇文章就来讲讲怎么来理解和记住它们 in & out 怎么记? Out (协变) 如果你的类是将泛型作为内部方法的返回,那么可以用 out: interface Production<out T> { fun produce(): T } 可以称其为 production class/interface,因为其主要是产生(produce)指定泛型对象。因此,可以这样来记: produce = output = out 。 In(逆变) 如果你的类是将泛型对象作为函数的参数,那么可以用 in: interface Consumer<in T> { fun consume(item: T) } 可以称其为 consumer class/interface,因为其主要是消费指定泛型对象。因此,可以这样来记: consume = input = in。 Invariant(不变) 如果既将泛型作为函数参数,又将泛型作为函数的输出,那就既不用 in 或 out。 interface ProductionConsumer<T> { fun produce(): T fun consume(item: T) } 举个例子

【53】Kotlin android 插件Kotlin-Android-Extensions代替findViewById

蓝咒 提交于 2020-07-28 19:34:35
module:app -> build.gradle 添加以下代码 apply plugin: 'kotlin-android-extensions' 布局代码 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/helloTv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout

Kotlin - how to get annotation attribute value

亡梦爱人 提交于 2020-07-28 16:45:48
问题 say, i have one Kotlin class with annotations: @Entity @Table(name="user") data class User (val id:Long, val name:String) How can i get the value of name attribute from @Table annotation? fun <T> tableName(c: KClass<T>):String { // i can get the @Table annotation like this: val t = c.annotations.find { it.annotationClass == Table::class } // but how can i get the value of "name" attribute from t? } 回答1: You can simply: val table = c.annotations.find { it is Table } as? Table println(table?