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

廊坊企业网站团队莱芜做网站

廊坊企业网站团队,莱芜做网站,杭州网站建设公司电话,指数基金Hello word 前言#xff1a;上次学习安卓#xff0c;学了Java开发#xff0c;简单的搭了几个安卓界面。这次要学习Kotlin语言#xff0c;然后开发安卓#xff0c;趁着还年轻#xff0c;学点新东西#xff0c;坚持~ 未来的你会感谢现在努力的你~ 主要学习资料#xff1a…Hello word 前言上次学习安卓学了Java开发简单的搭了几个安卓界面。这次要学习Kotlin语言然后开发安卓趁着还年轻学点新东西坚持~ 未来的你会感谢现在努力的你~ 主要学习资料 《第一行代码Android 第三版》菜鸟教程android官网-kotlinKotlin 官方文档 中文版2018年黑马安卓开发视频教程 那么开始吧~ 开始-Kotlin语言-安卓开发学习 首先是搭建环境在一通操作过后在android studio上成功安装行了kotlin 经典的hello word eclipse环境搭建结果 参数 又是一个绕不开的话题 kotlin中 使用val修饰的变量是不可变的(value) 使用var修饰的变量是可变的variable 可变的 tips: 优先使用val来声明一个变量而当val没有办法满足你的需求时再使用var 函数的格式 kotlin: func 函数名(参数名 参数类型): 返回值类型{函数体 }oc: - (返回值类型)函数名(参数类型: 参数名) {函数体 }只是组合方式不一样 函数的四要素函数名、参数、返回值类型、函数体都有 函数的简略写法 fun sum(a: Int, b: Int): Int{return ab } //如果函数体里面只有一条语句而且该语句有返回值则可以去掉{}并省略return直接使用 fun sum2(a: Int, b: Int): Int ab在kotlin中函数和参数(变量)一样都是一等公民 那个也可以将函数表达式赋值给一个变量 ///等号右边称为函数表达式var i {a: Int, b: Int - ab}println(i(3, 8))还有另外一种写法 //var j:后面表面是一种类型j是一个函数类型两个入参一个出参//后面是一个函数表达式var j:(Int, Int)-Int {x, y - xy }println(j(1, 8))也就是函数也可以充当函数里面的参数或者返回值 for循环 kotlin也有swift中的开区间、闭区间的概念 四种类型[]()[)(] 注意所谓 “全开区间” 或者是 “左开右闭” 的区间可以用其他两种方式代替 var nums 1..10for (num in nums){print($num, )}println()var nums2 1 until 10for (num in nums2){print($num, )}运行结果 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, step n隔几个打印1个 for (num in 1..20 step 2){print($num, )}运行结果1, 3, 5, 7, 9, 11, 13, 15, 17, 19, reversed()翻转打印 var nums2 1 until 10for (num in nums2.reversed()){print($num, )}运行结果9, 8, 7, 6, 5, 4, 3, 2, 1, list和map 使用listOf创建一个list 使用witIndex()获取index的值然后使用(x, y)两个参数接收 fun main(args: ArrayString){var array listOfString(1, 2, 4, 9)for ((i, e) in array.withIndex()){println($i $e)} 运行结果 0 1 1 2 2 4 3 9 //导入TreeMap包 import java.util.TreeMapfun main(args: ArrayString){//创建一个mapvar map2 TreeMapString, String()//赋值map2[good] 好map2[bad] 坏map2[study] 学习println(map2[bad]) }默认参数与具名参数 val PI 3.14ffun main(args: ArrayString){//要写3.14f,3.0f而不是3.14,3var temp circleArea(3.14f, 3.0f)var temp2 circleArea(radius 3.0f)println(temp)println(temp2) }//圆的面积 //默认Pi的值是PI //通过在类型的后面添加 符号来设置参数的默认值。 fun circleArea(Pi: Float PI, radius: Float): Float{return Pi*radius*2 }readLine() readLine()获取键盘输入的字获取后是String?类型的 异常捕获try-catch 举个计算器 fun main(args: ArrayString){println(请输入第一个数字)var a readLine()while (a null || a?.count() 0){println(不能输入空值请重新输入数字)a readLine()}println(请输入第二个数字)var b readLine()while (b null || b?.count()0){println(不能输入空值请重新输入数字)b readLine()}try {var num1 a!!.toInt()var num2 b!!.toInt()var result sum(num1, num2)println($num1 $num2 $result)}catch (error: java.lang.Exception){println(error)} }fun sum(a: Int, b: Int):Int{return ab }递归 举个例子计算n的阶层 5的阶层 5 * 4 * 3 * 2 * 1 120 fun main(args: ArrayString){println(jieCeng(5)) }fun jieCeng(a: Int):Int{//结束条件if (a 1) return 1//递归计算return a * jieCeng(a-1) }尾递归计算 fun main(args: ArrayString){var result 0println(add(100, result)) }tailrec fun add(a: Int, result: Int):Int{println(计算机第${a}次计算 result${result})//结束条件if (a 0) return 1//递归计算return add(a-1, result a) }继承 如果想继承某个父类则父类class前需要加open允许被继承如果想重写父类的某个方法则子类在同名方法前加overrid且父类在方法前加open允许被重写 接口和抽象类 接口是事物的能力接口用的时候接口名即可抽象类是事物的本质抽象类用的时候抽象类() 代理和委托 A委托B去做某事情 B代理A去做某事情 使用by 类名A()就可以实现类名A里面的方法 open class Father: IWashBowl by Son(){/**override fun wash() {println(我是爸爸洗完一次10元)}* */}//或者这样调用 open class Father: IWashBowl by Son(){override fun wash() {println(我是爸爸我收了妈妈的10元)Son().wash()println(我是爸爸我不洗碗但是赚了9元)} }单例 创建类的时候不使用class修饰而且使用object修饰则只有一份 印章类sealed sealed:封闭的、密封的 sealed class更在意类型枚举更在意数据 //跟enum类似只有指定有限的类 sealed class Son {//记得加()class XXL(): Son()class XXM(): Son()fun sayHello(){println(hello)} }fun main(args: ArrayString){//记得加()才是对象var son1:Son Son.XXL()var son2:Son Son.XXM()var son3:Son Son.XXM()var house listOfSon(son1, son2, son3)for (v in house){if(v is Son.XXM){v.sayHello()}} } 函数式编程 fun main(args: ArrayString){var names listOfString(tom, locy, jack)//forEach函数names.forEach(action haha)//闭包匿名函数names.forEach{a - println(a)}//闭包names.forEach{//默认参数itprintln(it)} }//函数作为参数前面使用var 参数名 //后面的函数名去掉 var haha fun (name: String):Unit{println(name) } Kotlin高阶函数 一个函数被用作参数或者返回值则称为高阶函数 maxBy/minBy 找出数组array里面age最大的item array.maxBy{a.age} 找出数组array里面height最小的item array.minBy{a.height} 返回的是item对象 var item: Object array.maxBy{it.age}filter 过滤找到特定条件的对象集合 好几个条件并列执行 var newArray array.filter{(it.age18) and (it.height168) and (it.age25) }map 把原数组某个属性映射成新的集合 比如把人群中的名字列出来放入新的集合中 var newArray oldArray.map{${it.name} : ${it.age} }结果{name1: 18, name2: 30, name3: 19} any 是否有满足某个条件的对象 返回的是一个boolean值 var temp: Boolean array.any{it.age 18 }count 统计符合满足条件对象的个数 var count: Int array.count{it.age18 }find 查找符合条件的对象并返回第一个 var item: Object array.finc{it.address北京 }groupBy 按照特征把对象分为不同的组 var result: Array array.groupBy{it.address }按照地址把原来的数组分别组成新的数组 DSL 领域特定语言 扩展函数中缀表达式 函数使用infix修饰后.的操作可以换成空格的操作
http://www.zqtcl.cn/news/927402/

相关文章:

  • 乐清门户网站建设网络推广关键词优化公司
  • 自己做的网站被攻击了企业展厅方案设计公司
  • 可信赖的郑州网站建设公司网站怎样实名认证
  • 创建一个网站的步骤是中国机械加工网招聘信息
  • 做电影解析网站烟台网站建设外贸
  • 做网站 网上接单汽车网站开发流程
  • 2017网站开发发展前景主页网站建设
  • 苏州手机网站建设费用上海企业制作网站
  • 网站上怎样做轮播图网站后台乱码怎么办
  • 专业网站建设品牌策划商务网站建设与维护考试
  • 网站开发手机版WordPress如何清空评论
  • 公司怎么建立网站吗010网站建设
  • 网站制作找哪家公司好湖北专业网站建设大全
  • 广州建设网站是什么关系wordpress 插件位置
  • 网站建设工作室 怎么样做一个网站需要多少钱
  • 北京网站制作人才免费企业网站源码
  • 微信商城网站怎么做网站备案是先做网站还是做完了备案
  • 工商局网站查询入口wordpress 文章列表顺序
  • 可以做平面设计兼职的网站模板商城建站
  • 织梦网站如何做301跳转畅销营销型网站建设电话
  • 新网企业邮箱保定seo
  • 河南国控建设集团招标网站网上注册公司核名流程
  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法
  • 用wordpress编写网站完整网站开发视频教程
  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备