范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Kotlin基本语法

  包的定义和导入
  在源文件的最上方定义包。包和目录的对应不是必须的。但是开发中还是写成对应的好,即包名和目录一样。package com.mingyu.demo import kotlin.text.*程序入口
  Kotlin程序的入口是main函数。fun main() {     println("你好,Kotlin!") }
  可以接收多个字符串参数的main函数。fun main(args: Array) {     println(args.contentToString()) }打印到标准输入设备(如输入到控制台)fun main() {     print("这就是打印文字") }
  打印后换行。fun main() {     print("第一行文字")     print("第二行文字") }函数
  定义规则:fun 函数名(参数):返回类型{函数内的处理代码}
  有两个整型参数的,并返回整型的函数。fun reduce(a: Int, b: Int): Int {     return a - b } fun main() {     print("10-5=")     print(reduce(10, 5)) }
  函数体可以是一个表达式,返回类型可以自动推断。fun reduce(a: Int, b: Int) = a - b fun main() {     print("20-5=${reduce(20, 5)}") }
  不需要返回任何值时使用Unit。fun reduce(a: Int, b: Int): Unit {     print("${a}-${b}=${a - b}") } fun main() {     reduce(30, 23) }
  Unit可以省略不用。fun reduce(a: Int, b: Int) {     print("${a}-${b}=${a - b}") }变量
  只读变量使用关键字val定义,只能赋值一次。fun main() {     val a: Int = 1 // 整型变量,立即赋值     val b = 2 // 类型自动推导的整型变量     val c: Int // 不需要初始化时可以先定义     c = 3   // 然后再赋值     println("a = $a, b = $b, c = $c") }
  用var来定义可以修改值的变量。fun main() {     var a = 0     a = 1     print("a=$a") }
  变量可以定义在最顶层(全局的)。val a = 110 var b = 12 fun main() {     println("a=$a,b=$b")     b += 1     println("a=$a,b=$b") }创建类和实例
  使用class关键字定义类class A
  属性的定义class A(var a: Int, var b: Int) {     var c: Int = a * b     //a,b,c都是A类的属性 }
  创建实例fun main() {     val a = A(10, 20)     println("a=${a.a},b=${a.b},c=${a.c}") }
  被open标记的类才能被继承open class A(var a: Int, var b: Int) {     var c: Int = a * b } class B : A(0, 0) {     val d: Int = 2 } fun main() {     val a = A(10, 20)     val b = B()     b.a = 12     b.b = 13     println("a.a=${a.a},a.b=${a.b},a.c=${a.c}")     println("b.a=${b.a},b.b=${b.b},b.c=${b.c},b.d=${b.d}") }注释
  单行注释//这是单行注释
  多行注释/*这个可以是多行的注释 这个可以是多行的注释 */字符串模板
  前面的例子中已经多次使用了。在字符串中使用$加变量的方式,可以将变量的值加入到字符串中。如果是复杂的表达式等内容,需要增加{}fun main() {     val a = 123     val b = "a=$a,a+1=${a + 1}"     println(b) }for循环fun main() {     val a = arrayOf("a", "b", "c", "d")     for (item in a) {         println(item)     } }
  带元素位置的循环fun main() {     val a = arrayOf("a", "b", "c", "d")     for (index in a.indices) {         println("第${index}位置的元素值为${a[index]}")     } }while循环fun main() {     val a = arrayOf("a", "b", "c", "d")     var index = 0     while (index

用when表达式进行分支控制

fun mySwitch(obj: Any): String = when (obj) {     1 -> "数字1"     "123" -> "字符串123"     is Long -> "这是一个长整型"     else -> "其它情况" }  fun main() {     println(mySwitch(1))     println(mySwitch("123"))     println(mySwitch(1234L))     println(mySwitch("这是个啥?")) }Ranges范围
  检查某数字是否在某范围内fun main() {     val a = 1     val b = 9     if (a in 1..b) {         println("a在1到${b}的范围内")     } }
  检查某数字是否不在某范围内fun main() {     val a = 11     val b = 9     if (a !in 1..b) {         println("a不在1到${b}的范围内")     } }
  在某个范围内循环fun main() {     for (i in 1..5){         print(i)     } }
  步进式循环fun main() {     for (i in 1..10 step 2) {         println(i)     } }
  倒序循环fun main() {     for (x in 9 downTo 0 step 3) {         print(x)     } }集合
  循环集合fun main() {     val items = listOf("第一个", "第二个", "第三个")     for (item in items) {         println(item)     } }
  检查某对象是否在集合中fun main() {     val items = setOf("第一个", "第二个", "第三个")     when {         "第四个" in items -> println("第四个")         "第二个" in items -> println("第二个")     } }
  使用lambda表达式操作集合fun main() {     val fruits = listOf("banana", "avocado", "apple", "kiwifruit")     fruits         .filter { it.startsWith("a") }         .sortedBy { it }         .map { it.uppercase() }         .forEach { println(it) } }可空的值和空检查
  在类型后面加问号(?)即表明它可以是空的nullvar a:Int?=null
  使用可以返回值为空的函数fun parseInt(str: String): Int? {     return str.toIntOrNull() } fun printProduct(arg1: String, arg2: String) {     val x = parseInt(arg1)     val y = parseInt(arg2)     if (x != null && y != null) {         println(x * y)     }     else {         println(""$arg1" 或 "$arg2" 不是数字")     } } fun main() {     printProduct("6", "7")     printProduct("a", "7")     printProduct("a", "b") }类型检查和自动转换
  使用is操作符来检查类型。判断为真时,类型会自动转换。fun getStringLength(obj: Any): Int? {     if (obj is String) {         //自动将转为String         return obj.length     }     //此处obj仍然是Any类型的     return null } fun main() {     fun printLength(obj: Any) {         println("获取${obj}的长度。 ${getStringLength(obj) ?: "不是一个字符串"} ")     }     printLength("这是一个字符串")     printLength(110)     printLength(listOf(Any())) }

实用安全工具hping3之SYNFlood攻击SYNFlood攻击原理利用TCP协议三次握手的缺陷,首先,攻击者被攻击者发送伪造源地址的TCPSYN报文(第一次握手),其次,被攻击者向源地址主机返回TCPSYN,ACK报文(第国产纯电中型SUV,续航505km,22。98万起售的飞凡MARVELR怎么样?在油价持续上涨的状态下,新能源汽车的关注度也是越来越高,再加上近年来新能源汽车技术的提高,消费者对于新能源汽车的接受程度也是越来高,今天给大家带来的也是一款新能源车型,能源类型为纯创始人玩失踪领导不管事员工不打卡,却连续5年营收翻一番来源互联网品牌官(szwanba)作者李大为人们都好奇,这家公司居然没有倒闭,它是怎么做到上市的?在普通人的印象中,上市公司是怎么样的?创始人牛逼哄哄,频繁出入各种场合,给公司赚名5次史上最牛的黑客攻击1逻辑炸弹引爆西伯利亚在1982年,在里根gov的CIA发现了克格勃窃取从西方窃取技术已经很多年了。对此,美国中央情报局决定给克格勃设一个巨大的陷阱,而这个陷阱很有可能是历史上第一iPhone11有望9月发布?彻底改革?让你无法抵挡还是让你失望按照苹果公司往年发布新机的时间点,iPhone11的发布日期很可能在9月,网上流传着多种iPhone11的概念渲染图,并且所有这些都比去年的iPhoneXS设计有着更显着的升级。考为什么三星和高通都拒向苹果提供5G基带?苹果也真的是走投无路了,我来讲讲为什么三星和高通以及为什么不找华为的苹果战略求高通合作直接被拒绝这个真的是高通都懵了,因为高通正在忙着告苹果呢,苹果突然说要买最新技术?想什么呢,当发布不到一年狂跌1500元,128GB2400万,顶尖旗舰现已无人问津愚人节当天锤子公司的一个愚人节推文,再次的让这个曾经辉煌过的手机品牌上了热搜,不过可惜的是,推文中所讲述的更新最终只是愚人节玩笑。或许许多人都对锤子手机依然还抱有希望,但无奈的是以任正非在华为,真正的人才都来自于歪瓜裂枣!点击上方,关注我们,分享管理知识,收获更多加薪秘籍。导读华为总裁任正非用狼狈组织少将连长等词汇诠释华为在员工激励组织建设干部管理等方面的管理智慧,道出了华为人力资源管理的核心。华为马云投10亿做了一个新零售便利店,不像便利店!马云一出手,世界抖三抖。继盒马以后,马爸爸又一个新零售巨作逸刻便利店在上海横空出世,投入10亿,一年内要开到500家门店。先来了解下这个由百联和阿里投资10亿联合打造的逸刻便利店,原来这就是现代农业,太震撼了!导读现代农业包括设施农业观光农业无土栽培精准农业太空农业等农业生产经营模式,该模式运用现代科技手段进行农业生产种植和经营,实现农业规模化产业化精准化发展,促进农业附加值增长增收。设三年以来内存暴跌赶快升级你的内存内存真是个让人揪心的产品和行业,之前一度连续近两年的时间持续价格暴涨,高的让人望而却步,现在却又走上了下坡路,价格持续下跌,白菜价时代又回来了。如今,PCDDR4内存的价格已经创下
五问阿里云!阿里巴巴与近30个省政府签署战略协议涉及五大领域大财团入场,第一个目标是为了挣钱,他们不是慈善机构,肯定是为了丰厚的利润。阿里巴巴与近30个省政府及五大行签署战略协议,涉及五大领域(云计算电子商务智慧城市互联网产业智能物流)云计iPhone手机电池健康多少才换?80这是苹果在保修期内免费维修电池的条件之一是电池状态降至80以下,并且在保修期内(如果没有AppleCare一年,则可以查看AppleCare时间),可以免费更换电池。从设置电池大公司早报带货主播成正式工种吉利或推出网约车平台(整理卢思叶)今天是12月3日星期五,过去的二十四小时有这些公司动态可以关注国家网信办依法约谈处罚豆瓣网,已累计罚款900万元因更换条款内容空洞,上海消保委将继续约谈加拿大鹅吉利集程序员2年时间工资从8K涨到36K,一个非科班自学的经历分享本分享是程序汪的一个前端铁粉,他是化学专业通过自学入行,真的很强2年时间从最初小公司8K到现在的某大厂36K,学习经历值得大家学习参考下程序汪你好,谢谢你的邀请,我很高兴能通过你去感觉我们的基础物理已经有很长的时间没有发展了,会不会最开始的理论就是错的?如果理论是正确的,那么人类的认识就会停滞不前,其最多只是改良或更为精确,表现出人类认识的连续性。如果理论是错误的,则人类的认识就背离了认识的目的。而且,错误的理论是没有实际应用价值马斯克内部信爆出惊人内幕SpaceX可能会破产据说,硅谷大侠马斯克旗下SpaceX太空探索公司,是目前世界上估值第二大的私人公司,其估值大约为1000亿美元,仅次于字节跳动。由于其雄心勃勃的太空业务,未来,SpaceX可能会成人工智能进军数学领域首次帮人类发现两个新猜想来源科技日报英国自然杂志1日发表了一个机器学习框架,能帮助数学家发现新的猜想和定理。该框架由深度思维(DeepMind)开发,已经帮助发现了纯数学领域的两个新猜想。这项研究展示了机震惊!大学生上课竟发现老师是商业大佬近日,一名天津商业大学宝德学院的学生在上课的时候突发奇想,拿出手机搜索了一下老师的名字,没想到老师竟然是商业大佬京东副总裁李绪勇。该学生瞬间目瞪口呆,并表示要是早点知道的话,就跪着为什么身边用iPhone的中老年人越来越多了?结实耐用,恶意软件少,方便实用,也不差钱感谢您的阅读!为什么身边使用,iPhone手机的中老年人越来越多?我的爸妈,我现在给他们使用的就是iPhone手机,虽然是我之前使用过的iP电风扇变慢是什么原因,哪位大神学霸懂啊?电风扇的工作原理比其他家用电器是简单得多。电风扇使用的电流是交流电,主要的工作原理就是通电线圈在磁场中受力而转动,从而使得电能转化为机械能。转动风叶加速周围的空气流动,从而带走热量摄影尼康党们,是什么原因让你当初选了尼康?刚开始是摄影小白,啥都不懂,当地摄影协会的的同事都用尼康,就买了当时很火的一款相机,D90,不过镜头被忽悠买了腾龙的18200,谁让咱当时不懂呢。随着摄影技术的提升,以及加了N多摄