保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

Kotlin基础语法

  Kotlin基础语法
  Kotlin文件以。kt为后缀。包声明
  代码文件的开头一般为包的声明:packagecom。runoob。mainimportjava。util。funtest(){}classRunoob{}
  kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。
  以上例中test()的全名是com。runoob。main。test、Runoob的全名是com。runoob。main。Runoob。
  如果没有指定包,默认为default包。默认导入
  有多个包会默认导入到每个Kotlin文件中:kotlin。kotlin。annotation。kotlin。collections。kotlin。comparisons。kotlin。io。kotlin。ranges。kotlin。sequences。kotlin。text。函数定义
  函数定义使用关键字fun,参数格式为:参数:类型funsum(a:Int,b:Int):Int{Int参数,返回值Intreturnab}
  表达式作为函数体,返回类型自动推断:funsum(a:Int,b:Int)abpublicfunsum(a:Int,b:Int):Intabpublic方法则必须明确写出返回类型
  无返回值的函数(类似Java中的void):funprintSum(a:Int,b:Int):Unit{print(ab)}如果是返回Unit类型,则可以省略(对于public方法也是这样):publicfunprintSum(a:Int,b:Int){print(ab)}可变长参数函数
  函数的变长参数可以用vararg关键字进行标识:funvars(varargv:Int){for(vtinv){print(vt)}}测试funmain(args:ArrayString){vars(1,2,3,4,5)输出12345}lambda(匿名函数)
  lambda表达式使用实例:测试funmain(args:ArrayString){valsumLambda:(Int,Int)Int{x,yxy}println(sumLambda(1,2))输出3}定义常量与变量
  可变变量定义:var关键字var标识符:类型初始化值
  不可变变量定义:val关键字,只能赋值一次的变量(类似Java中final修饰的变量)val标识符:类型初始化值
  常量与变量都可以没有初始化值,但是在引用前必须初始化
  编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。vala:Int1valb1系统自动推断变量类型为Intvalc:Int如果不在声明时初始化则必须提供变量类型c1明确赋值varx5系统自动推断变量类型为Intx1变量可修改注释
  Kotlin支持单行和多行注释,实例如下:这是一个单行注释这是一个多行的块注释。
  与Java不同,Kotlin中的块注释允许嵌套。字符串模板
  表示一个变量名或者变量值
  varName表示变量值
  {varName。fun()}表示变量的方法返回值:vara1模板中的简单名称:vals1aisaa2模板中的任意表达式:vals2{s1。replace(is,was)},butnowisaNULL检查机制
  Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为null或配合?:做空判断处理类型后面加?表示可为空varage:String?23抛出空指针异常valagesage!!。toInt()不做处理返回nullvalages1age?。toInt()age为空返回1valages2age?。toInt()?:1
  当一个引用可能为null值时,对应的类型声明必须明确地标记为可为null。
  当str中的字符串内容不是一个整数时,返回null:funparseInt(str:String):Int?{。。。}
  以下实例演示如何使用一个返回值可为null的函数:funparseInt(str:String):Int?{returnstr。toIntOrNull()}funprintProduct(arg1:String,arg2:String){valxparseInt(arg1)valyparseInt(arg2)直接使用xy会导致错误,因为它们可能为nullif(x!nully!null){在进行过null值检查之后,x和y的类型会被自动转换为非null变量println(xy)}else{println(arg1orarg2isnotanumber)}}funmain(){printProduct(6,7)printProduct(a,7)printProduct(a,b)}
  或者:funparseInt(str:String):Int?{returnstr。toIntOrNull()}funprintProduct(arg1:String,arg2:String){valxparseInt(arg1)valyparseInt(arg2)。。。if(xnull){println(Wrongnumberformatinarg1:arg1)return}if(ynull){println(Wrongnumberformatinarg2:arg2)return}在进行过null值检查之后,x和y的类型会被自动转换为非null变量println(xy)}funmain(){printProduct(6,7)printProduct(a,7)printProduct(99,b)}类型检测及自动类型转换
  我们可以使用is运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字)。fungetStringLength(obj:Any):Int?{if(objisString){做过类型判断以后,obj会被系统自动转换为String类型returnobj。length}在这里还有一种方法,与Java中instanceof不同,使用!isif(obj!isString){XXX}这里的obj仍然是Any类型的引用returnnull}
  或者fungetStringLength(obj:Any):Int?{if(obj!isString)returnnull在这个分支中,obj的类型会被自动转换为Stringreturnobj。length}
  甚至还可以fungetStringLength(obj:Any):Int?{在运算符的右侧,obj的类型会被自动转换为Stringif(objisStringobj。length0)returnobj。lengthreturnnull}区间
  区间表达式由具有操作符形式。。的rangeTo函数辅以in和!in形成。
  区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。以下是使用区间的一些示例:for(iin1。。4)print(i)输出1234for(iin4。。1)print(i)什么都不输出if(iin1。。10){等同于1ii10println(i)}使用step指定步长for(iin1。。4step2)print(i)输出13for(iin4downTo1step2)print(i)输出42使用until函数排除结束元素for(iin1until10){iin〔1,10)排除了10println(i)}实例测试funmain(args:ArrayString){print(循环输出:)for(iin1。。4)print(i)输出1234println()print(设置步长:)for(iin1。。4step2)print(i)输出13println()print(使用downTo:)for(iin4downTo1step2)print(i)输出42println()print(使用until:)使用until函数排除结束元素for(iin1until4){iin〔1,4)排除了4print(i)}println()}
  输出结果:循环输出:1234设置步长:13使用downTo:42使用until:123

为什么小米和红米用同一款处理器的手机,价格却差距这么大?除了处理器以外的地方,都使劲节约成本(缩水)举例来说五个地方。1,先说外观方面,电池盖,塑料的几块钱玻璃的三十多,手机中框也是这样铝合金的贵塑料中框便宜。2,……春游的建议一年之计在于春,春姑娘迈着轻盈的脚步向我们走来,春姑娘用她那神奇的花篮子把花朵撒向世界各地,在用她神奇的魔,让小河恢复以往精神的面貌。如此这般大好的景色,我建议大家去翡翠湖走一……那片海小学优秀作文天空还在混沌的状态,微微探出头的光,粉蓝和粉橘柔和的搅和在一块。凌晨五点钟,城市还没醒,但是这个渔村已经进入繁忙的阶段。渔夫们的叫卖声此起彼落,好不热闹。空气里透着海水硷……写给台湾小朋友的一封信小学生模板台湾小朋友们:我是大陆的一名小学生,虽然我们相隔两岸,但是我们的心是相通的。我们日日夜夜都期待着台湾回归祖国,期待我们团聚的那一刻!记得我看过一篇课文,它是这么说的:那日……最新腊八节的习俗作文导语:用幸福炉火慢慢地炖,用快乐五谷细细地熬,做成一碗暖暖的粥,伴你度过冷冷的冬。祝你幸福安康。腊八节快乐。接下来小编整理了腊八节的习俗作文,文章希望大家喜欢!腊八节除祭……关于小学春游的作文500字汇总7篇在平平淡淡的日常中,说到作文,大家肯定都不陌生吧,借助作文人们可以反映客观事物、表达思想感情、传递知识信息。那么一般作文是怎么写的呢?下面是小编为大家收集的小学春游的作文500……新能源车主省心吗来源:经济日报2021年,新能源汽车成为汽车行业最大亮点。据中国汽车工业协会统计,新能源汽车产销分别完成354。5万辆和352。1万辆,同比均增长1。6倍,市场占有率达到……工信部启动电动汽车动力蓄电池安全相关标准修订工作金一丹中国证券报中证网中证网讯(记者金一丹)3月18日,工信部发布2022年汽车标准化工作要点提出,启动电动汽车动力蓄电池安全相关标准修订工作,进一步提升动力蓄电池热失控……深耕数字化转型软通动力誓做中国埃森哲本报讯十四五规划全面聚焦数字经济发展,数字经济上升为国家战略,市场规模巨大。软通动力紧抓国内大力发展数字经济的契机,誓做中国的埃森哲。相比超67万名员工、3000亿元年收……马克西姆高尔基童年读后感800字马克西姆。高尔基的《童年》举世闻名。在一个很平凡的星期天下午,我翻开了它。情绪也随着书上一行行黑色的宋体字忽起忽落主人公阿廖沙痛苦的童年生活打动着我:四岁丧父,跟随悲痛欲……新能源汽车续航里程何时不再雾里看花?记者调查发现,不少新能源汽车厂商都打出了超长续航的广告,但消费者购车后发现续航里程往往会缩水,有的只有标称里程的一半,关于纯电新能源汽车续航里程打折问题的投诉早已屡见不鲜。……唯有珍惜即时的拥有许多人懂得珍惜是什么意思,但很少人却不会按照珍惜这个意思去行走。唯有珍惜即时的拥有,生命的记忆里才会少一些悔恨,才会让自己活得更有价值。我们要珍惜时间。比如说我,在以前上……
如何让甜瓜量质双升?研究发现两种生物可降解地膜是推手来源:工人日报客户端原标题:如何让甜瓜量质双升?研究发现两种生物可降解地膜是推手工人日报中工网记者黄哲雯通讯员孙敏涛近日,中国农科院蔬菜花卉研究所设施栽培课题……海康威视2021年营收814亿元增长28。21,明确智能物联4月15日晚间,海康威视公布2021年年报,实现营业总收入814。20亿元,同比增长28。21;归属于上市公司股东的净利润168。00亿元,同比增长25。51。值得一提的是,海……朋友的喜好的英语作文JennyisanAmericangirlSheis13yearsold。Sheisverytallandalittlethin。Shehaslongblackstraight……汗脚鲱鱼,哪个更臭?文徐锐发酵鲱鱼的臭鸡蛋味被描述为世界上最令人厌恶的气味,但它却是瑞典人的最爱。还有让一些人感到恶心的黑甘草,却是荷兰人的心头好。长期以来,科学家一直认为文化是这种气……ETC停止微信支付了吗近日,安徽交通一卡通控股有限公司停止提供微信支付服务一事引发关注。此事会对用户产生多大影响?记者采访交通运输部公路局获悉,安徽ETC平台停止使用微信支付渠道,只涉及ETC储值卡……linux后台任务执行近日迁移服务时,需要执行后台任务。linux执行后台任务的相关命令包括、nohup、bg等。简单记录,方便速查。命令在命令后面加上可实现后台运行。使用示例:sheasea……描写秋天景色的好句有哪些1、来到田野里,看见稻谷换上了金色的衣裳,那田间小路上车来人往,热闹非凡。有运玉米的,有拉高粱的;还有装豆子的。一辆辆运粮车,满载着丰收的喜悦。菜园里,要数大白菜最引人注目了,……大黄牛与小黄牛小学作文我爷爷家养了一头大黄牛和一头小黄牛。大黄牛全身金黄色的绒毛,腹部是白色的,头上长着一对弯弯的角,大大的眼睛,又宽又大的嘴巴。它那粗壮的四条腿,像四根柱子。每年春天,……哈勃望远镜确认有史以来最大彗星科技日报北京4月14日电(实习记者张佳欣)美国国家航空航天局(NASA)12日表示,哈勃空间望远镜发现了有记录以来最大的彗星。据估计,这颗名为C2014UN271的巨大彗星的彗……维持2。4亿罚款终身禁入,贾跃亭翻案被否乐视网十年财务造假,时任董事长贾跃亭被罚2。4亿元,终身禁入证券市场。针对上述证监会行政处罚和市场禁入决定,贾跃亭提起行政复议,最终被否。证监会4月15日披露了对贾跃亭的……宗教与人工智能宗教与人工智能好像是最近人们思考的问题,比如电影《人工智能》,它里面有一段讲的就是宗教和人工智能的关系。他们也在讲人工智能是人们创造出来的东西,是不是人应该算作造物主创造我们,……2016年圣诞节搞笑的话天使说只要站在雪中画99朵郁金香许愿,上帝就会听到。我把花画满了整个院子,终于听见上帝说:许个愿吧。我赶紧说:要看短信的人圣诞节快乐!1。天天各自忙,情意放心上,平时少问……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网