从零开始学Kotlin-扩展函数(10)】的更多相关文章

1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在toklin中所有的class都是kclass 5.如果调用字段起冲突使用两个反引号''包裹进去 6.如果有基本数据类型和包装类型会认为是同一个,没有包装类型一说,如何调用包装类型反射可以. 7.传入字符串如果自己不确定是否为空,可让代码为空安全,第三种 8.@JvmStatic可以让方法称为publi…
Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. String str=new String(); 现在学了Kotlin之后呢,实例化对象只需要这样做 var str=String(); ....剩下的语法差不多... 一个下载图片的案例: 高级开发程序员:用gradle编程. 我学的和这个资源学的一样:https://www.jianshu.co…
面向对象: //妹子 性格 声音 class Girl(var chactor:String,var voice:String) fun main(args: Array<String>) { var girl=Girl("彪悍","甜美") println("声音"+girl.voice) } 行为 //妹子 性格 声音 class Girl(var chactor:String,var voice:String){ //行为 fu…
函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom","jerry","lucy") //String ->Unit 函数类型 参数为字符串 返回值为 Unit //1.复杂写法 names.forEach(print) //2,简单写法 names.forEach{ //小括号换大括号,it代表参数 p…
kotlin函数和函数式表达式的简化写法: fun main(args:Array<String>) { var result=add(2,5) println(result) ///简化-->2 var i={x:Int,y:Int->x+y} var result2=i(2,5) println(result2) ///简化-->3 var j:(Int,Int)->Int={x,y->x+y} var result3=j(2,5) println(resul…
Kotlin的方法: 一个简单的计算器: fun main(args:Array<String>){ //主函数main方法 var a=8; var b=9; println(plus(a,b));//17 println(sub(a,b));//-1 println(mutl(a,b));//72 println(devide(a,b));//0,int取整了 } /** * 加法 */ fun plus(a:Int,b:Int):Int{ return a+b; } /** * 减法 *…
字符串模板 fun main(args:Array<String>){ //主函数main方法 println(diaryGenerater("天安门")); } //字符串模板${} fun diaryGenerater(pla:String):String{ var Temp="""今天天气好,我们去${pla}玩,看到了${pla.length}个大字"""; return Temp; } 输出: 今天天气好…
从零开始学Kotlin基础篇系列文章 什么是扩展函数 扩展函数数是指在一个类上增加一种新的行为,我们甚至没有这个类代码的访问权限: Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式: 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响. 扩展函数 扩展函数可以在已有类中添加新的方法,不会对原类做修改: //扩展函数定义形式: fun receiverType.functionName(params){ body } receiverType:表示…
从零开始学Kotlin基础篇系列文章 条件控制-if var a=10 var b=20 if(a>b) print(a) if(a>b){ print(a) }else{ print(b) } val max = if( a > b) a else b if ( a in 1..10){ print("a在1到10区间内") } 条件控制-when val x = 3 when (x) { 1 -> print("x 是1") 2 ->…
从零开始学Kotlin基础篇系列文章 冒号操作符 ":" 和 "::" :操作符用来定义变量.类的继承等 var name: String//定义变量 class MainActivity : AppCompatActivity()//继承类 ::可以用来得到类的Class对象 startActivity(Intent(this@MainActivity, SecondActivity::class.java))//得到SecondActivity对象 比较符&qu…
从零开始学Kotlin基础篇系列文章 基本数据类型 Kotlin 的基本数值类型包括 Byte.Short.Int.Long.Float.Double 等: 数据-------位宽度 Double-----64 Float------32 Long-------64 Int--------32 Short------16 Byte-------8 常量表示(不支持8进制) 十进制:520 长整型以大写的 L 结尾:5201314L 16 进制以 0x 开头:0x0F 2 进制以 0b 开头:0b…
从零开始学Kotlin基础篇系列文章 枚举的定义 一个类的对象是有限且固定的,这种实例有限且固定的类称为枚举类; 枚举常量用逗号分隔,每个枚举常量都是一个对象; enum class EnumDemo9 { RED, BLUE, BLACK, WHITE } 枚举初始化 每一个枚举都是枚举类的实例,它们可以被初始化;枚举类的主构造函数默认是私有的,初始化时需要在主构造函数中声明; enum class EnumDemo91(val rgb: Int) { RED(0xff0000), BLUE(…
从零开始学Kotlin基础篇系列文章 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼. 泛型类的基本使用 泛型,即 "参数化类型",将类型参数化,可以用在类,接口,方法上 class DemoClass<T>(date: T) {//date是任意类型的,避免强转 var todayDate=date } 创建类的实例时我们需要指定类型参数 //指定泛型date为String,三种创建方法 val demo1: DemoClass<…
从零开始学Kotlin基础篇系列文章 定义接口 使用关键字interface定义接口 interface InterfaceDemo7 { } 类或对象可以实现一个或者多个接口 class demo7 : InterfaceDemo7 { } class demo : InterfaceDemo71, InterfaceDemo72 { } 接口中定义属性 接口中的属性只能是抽象的,不允许初始化值 interface InterfaceDemo7 { val name: String var g…
从零开始学Kotlin基础篇系列文章 Kotlin中的超类Any Kotlin 中所有类都继承超类 Any 类 class demo6 //默认继承超类Any class demo6 : Any() Any类有三个默认的函数 override fun equals(other: Any?): Boolean { return super.equals(other) } override fun hashCode(): Int { return super.hashCode() } overrid…
从零开始学Kotlin基础篇系列文章 注释 //单行注释 /* 多行注释 */ /** * 多行注释 */ 定义变量/常量 变量定义:var 关键字 var <标识符> : <类型> = <初始化值> 常量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量) val <标识符> : <类型> = <初始化值> 常量与变量都可以没有初始化值,但是在引用前必须初始化 var name: String//不指定变量…
Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: ######################################################## ###EMBEDDED SERVER CONFIGURATION (ServerProperties) #############################################…
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memcached Client for Java SpyMemcached XMemcached 他们的对比与性能我这里不讨论,想了解自己搜索查看,我这里使用的是 XMemcached ,据说它的并发效果更好一些. 地址:https://github.com/killme2008/xmemcached 一…
早上下起了暴雨 闹钟还未响起就听到雨滴哗啦啦击打窗户的声音,被吵醒了.起床上班,在楼下的十字路口,暴雨大到完全看不清对面,两个穿着雨衣的交警站在路口中间指挥着过往的车辆,大家都慌慌张张.急急忙忙的打着各式各样的雨伞在走,有的往地铁站,有的往公交站,而我,站在楼下等车来... 这是前两天的看到了,不是今天. 安装所需环境 nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 Centos 7 作为安装环境. 一. gcc 安装 安装 ngin…
继从零开始学Bootstrap(1)后,我们需要实际做一些页面,边学边做.因为前端是一项非常注意实践的技术,知识点太多.太琐碎了,所以我们只能边学边做.根据我们想要做的效果,去查相应的资料.不要想着把所有的东西都学会后再做网页实践. 过程中会频繁查阅资料的网站: http://www.w3school.com.cn/ 这是W3C联盟为了传播W3C标准而建立的网站,有很多关于Web端的技术,你可以将其看作为一部Web技术的百科全书. http://v3.bootcss.com/ 不用多说,Boot…
之前在两篇文章中都有简单介绍或者提到过 自定义属性的用法: 25.Spring Boot使用自定义的properties[从零开始学Spring Boot] 51. spring boot属性文件之多环境配置[从零开始学Spring Boot] 但是在实际开发过程中有更复杂的需求,我们在对properties进一步的升华.在本篇博客中您将会学到如下知识(这节中有对之前的知识的温故,对之前的升华): (1) 在application.properties文件中添加自定义属性(单个属性使用): (2…
原文:从零开始学Xamarin.Forms(五) 技巧 由于HTML5规范于2014年10月终于定稿,公司.net开发人员较少,国内外已有了较为成熟的UI框架.手机软件硬件的快速发展等等原因,所以我就不打算再使用Xamarin了,而是采用HTML5+CSS3+Javascript的方式来进行跨平台的开发.之前在探索Xamarin中积累了一些小经验也同时分享给大家,希望能给大家带来帮助. 1.TabbedPage中嵌入NavigationPage,NavigationPage中的Root的titl…
原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为wifi定位和基站定位,都是通过获取wifi或者基站信息,然后查询对应的wifi或者基站位置数据库,得到的定位地点.定位数据库可以不断完善不断补充,所以,越定位越准确.本文详细描述了,如果使用高德JS API来实现位置定位.城市定位的方法,包含了IP定位,浏览器定位,检索定位等多种网络定位方法.当然,…
原文:[高德地图API]从零开始学高德JS API(八)——地址解析与逆地址解析 摘要:无论是百度LBS开放平台,还是高德LBS开放平台,其调用量最高的接口,必然是定位,其次就是地址解析了,又称为地理编码.地址解析,就是将地址转换为经纬度.而逆地址解析,就是将经纬度转换为地址.经纬度一般是由专业测绘机构用GPS采集,然后使用国测局接口加密,最后呈现在互联网地图上的.而地址,这里说的是结构化的带街道门牌号的地址,比如“北京市朝阳区阜通东大街6号”,这个地址是由公安局颁发的.而将地址和经纬度一一对应…
原文:[高德地图API]从零开始学高德JS API(五)路线规划——驾车|公交|步行 先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别? 回答: 1.路线规划,指的是为用户提供3条路线推荐.[高德]在提供路线规划的时候,会提供用户自定义路线规划功能,这是别家没有做到的.导航,指的是为驾车用户提示路口信息,向左向右,进入匝道等信息. 2.我们这里说的步行导航和驾车导航,严格的说,应该是路线规划.从A地到B地,如果是驾车,路线规划会将公路路网做为搜索数据:如果是步行,过街天桥.…
原文:[高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公交导航,驾车导航,步行导航,道路查询(交叉口),行政区划等等.如果说覆盖物Marker是地图的骨骼,那么服务,就是地图的气血.有个各种各样的地图服务,我们的地图应用才能变得有血有肉,活灵活现.第四篇拆成了几个要点,本篇主要讲搜索服务.包括周边搜索,关键词搜索,范围搜索,搜索提示(自动完成,输入提示)…
原文:[高德地图API]从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 摘要:覆盖物,是一张地图的灵魂.有覆盖物的地图,才是完整的地图.在一张地图上,除了底层的底图(瓦片图,矢量图),控件(有功能可操作的工具),最重要最不可缺少的就是覆盖物了.覆盖物有多种,包括,标注.折线.多边形.信息窗口.聚合marker.麻点图和图片覆盖物.本文会详细介绍每一种覆盖物的概念,添加方法,修改方法,移除方法等.最后会提供示例和源代码下载. 示例dem…
原文:[高德地图API]从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图 摘要:关于地图的显示,我想大家最关心的就是麻点图,自定义底图的解决方案了吧.在过去,marker大于500之后,浏览器开始逐渐卡死,大家都开始寻找解决方案,比如聚合marker啊,比如麻点图啊.聚合marker里面还有一些复杂的算法,而麻点图,最让大家头疼的,就是如何生成麻点图,如何切图,如何把图片贴到地图上,还有如何定位图片的位置吧.以前那么复杂的一系列操作,居然让云图的可视化操作一下子解决了.…
大家好,这里是 Daotin 从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 1.什么是前端 前端对于网站来说,通常是指网页,网站的前台部分包括网站的表现层和结构层.因此前端技术一般分为前端设计和前端开发. 前端设计一般可以理解为网站的视觉设计,比如 UI 设计: 前端开发则是网站的前台代码实现,包括基本的…
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.表格 1.表格的结构 表格的标准结构: 1<table> 2 <thead> 3 <tr> 4 <td></td> 5 <td></td>…