kotlin基础 range】的更多相关文章

a = 1..10 //[1,10] b = 1 unitl 10 //[1,10)…
写在前面: 因为工作需要,目前转安卓开发,用的IDE是AS3.2版本,语言的话,用的是Kotlin.由于之前是做.NET的,没接触过这方面的东西,所以完全是小白一枚.所以想着开个博客,以此来记录自己的学习进度.光是环境搭建,自己琢磨了一上午,也上网百度,最后在一以前搞安卓开发的同事的帮助下,才完成环境的搭建. --------------------------------------------我是分割线---------------------------------------------…
Kotlin的类型系统 一.可空类型 //s为null的话编译器会报错,没问号不能为空 fun strLen(s : String)=s.length //如果允许s为空可: fun strLen2(s : String?) : Int{ if (s!=null) return s.length else return 0 } /* 注意可空类型和不可空类型只是在编译期做的 检查不同,runtime这两者并无区别 */ //"?."的用法 fun strLen3(s : String?…
    Kotlin 和 java 都是一种静态类型的编程语言.表达式的类型在编译期已经确定,编译期能验证对象是否包含想访问方法或是字段,维护正确性与性能的同时保持源代码的简洁       静态类型的优点: 性能——方法调用速度更快,因为不需要在运行时才来判断调用的哪个方法 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低 可维护性——抹身代码更容易维护,因为你可以看到代码中用到的对象的类型 工具支持——静态类型使IDE能提供可靠的重构,精确的代码补全特性       ps:动态类型…
1. 改进点/基础 //安全判空 val length = text?.length; //类型转换 if (object is Car) { var car = object as Ca } //操作符变化 & and | or ^ xor >> shr << shl //打印日志 print("123123") println("asdassda") 2. 字符串 //多行字符串 val xx = ""&quo…
一切都需要从基础学起! 前言: 在Kotlin语言中,没有分号的概念了,也就是每一行代码,都不在需要用分号结束了 点击查看代码 定义 常量:val --相当于java当中的final 变量:var 关键字:如枚举关键字enum,在 ‘enum class 类名’ 中,enum是关键字,但是如果 ‘val enum = 1’中,enum就不是关键字了 类型:以冒号:隔开在后面,也可以省略直接赋值,类型后带问号?表示可为空类型(默认空安全) 是否为null参数定义:如x: String?表示x变量是…
好用的集合扩展方法: 下面来看一下对于集合中好用的一些扩展方法,直接上代码: 如果我们想取出集合中的第一个值和最后一个值,用Java方式是get(0)和get(size-1),但是在Kotlin中提供有现成的方法,如下: 其中看一下它的定义,就是标准的扩展方法的定义: 另外如果想过滤元素在之前也已经用过了,用filter,比如如果想取出偶数的元数,如下: 简单看一下它的定义: 下面再来定义一个集合: 看一下它的定义: 运行一下: 接着继续: 看下它的定义: 也就是如果第一个元素或是最后一个元素为…
继续学习基础语法,在上次https://www.cnblogs.com/webor2006/p/11183077.html中定义了一个两数相加的函数,如下: 其实对于这个函数还可以进一步简写,因为函数体就一句话,如下: 那如果函数不返回值呢,看下面的例子: 其实Unit是可以省略掉的,IDE中也已经将它标灰了,如下: 那,这个Unit是干嘛用的呢?之后再学习,先不管这个细节.如果说想输出“a+b=5”这个形式的字串那该怎么来弄呢,叫Java的风格应该是这么写的: 但在Kotlin中可以采用“字符…
#range帮助创建连续的数字,通过设置步长来指定不连续 python2.7 #直接就在内存中创建出来(0-99) >>> range(100)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,…
对于Kotlin中的函数来说,和JavaScript或者Lua这些语言很像,它有着这些语言的特性.但是也与这些语言就着许多不同之处.或许你更了解Java语言,然而对于Java语言来说,它不是不是闭包这个特性的.由于在这篇文章主要是讲解函数的基本使用,故而只会讲解到函数的定义.函数的返回值.函数的参数等.剩下的部分我会在这个系列的高级篇会给大家奉上. 目录 一.函数的声明及基本使用 在Kotlin中函数的声明,同JavaScript相似. 1.1.函数的声明 Kotlin中的函数声明关键字为:fu…
1.函数也是对象,可以作为参数和返回值 2.使用驼峰命名,尽量避免下划线 3.public函数应当有说明文档 4.lambda中花括号内前后都应该有空格 5.空值安全检查  var s: String? = null;当一个变量允许为空值时,必须使用?来声明 6.当?:左边表达式不为空时,返回表达式的值,否则执行?:右边表达式的值 7.as?  安全类型转换,转换失败会返回null 8.lambda表达式相当于一个函数     fun add(x :Int,y :Int) : Int = x +…
Kotline简介 Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源.与Java相比,Kotlin的语法更简洁.更具表达性,而且提供了更多的特性,比如,高阶函数.操作符重载.字符串模板.它与Java高度可互操作,可以同时用在一个项目中. Kotlin语法 1.函数的使用 定义函数使用fun关键字,如下代码所示: fun add(a: Int, b: Int): Int { return a + b } 函数add有两个Int型的参数,冒号后跟的是函数的返…
range()返回的是range object,而np.nrange()返回的是numpy.ndarray() range尽可用于迭代,而np.nrange作用远不止于此,它是一个序列,可被当做向量使用. range()不支持步长为小数,np.arange()支持步长为小数 两者都可用于迭代 两者都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列 某种意义上,和STL中由迭代器组成的区间是一样的,即左闭右开的区间.[first, last)或者不…
Lambda编程 一.Lambda表达式和成员引用 一)Lambda表达式语法 //注意与Java8中的区别 val sum={ x:Int,y:Int -> x+y } println(sum(5,6)) run { print(33) } data class Person(val name:String,val age:Int) fun main(args: Array<String>) { val persons= listOf<Person>(Person(&quo…
类.对象和接口 一.定义类的继承结构 一)Kotlin中的接口 Kotlin的接口与Java8中相似,它们可以包含抽象方法的定义以及非抽象方法的实现,但它们不能包含任何状态. interface Clickable{ fun click() fun showoff()=println("It's show time!") } interface Focusable{ fun setFocus(b: Boolean)= println("I ${if (b) "got…
函数的定义与调用 一.预备知识:在Kotlin中创建集合 fun main(args: Array<String>) { //Kotlin中定义各自集合 val ,,,) val list= arrayListOf<Int>(,,) val map= hashMapOf<Int,String>( to to "tow") //为了更容易与Java代码交互,Kotlin采用的是标准的Java集合类 println(set.javaClass) prin…
Kotlin快速入门 一.函数 /* * 1.函数可以定义在文件最外层,不需要把它放在类中 * 2.可以省略结尾分号 * */ fun main(args: Array<String>) { println(max2(1,2)) println(max(3,5)) } fun max(a: Int, b: Int): Int{ return if (a>b) a else b } /* * 与Java不同,Kotlin中,除了循环(for.do和do/while) * 以外大多数控制结构…
Kotlin 文件以 .kt 为后缀. 包声明 代码文件的开头一般为包的声明: package com.runoob.main import java.util.* fun test() {} class Runoob {} kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录. 以上例中 test() 的全名是 com.runoob.main.test.Runoob 的全名是 com.runoob.main.Runoob. 如果没有指定包,默认为 default 包. 默认导入…
1.基本数据类型 Kotlin的基本数值类型包括byte,short,int,long,float,double等.字符不属于数值类型,是一个独立的数据类型. 数字类型中不会主动转换.例如,不能给Double变量分配Int.必须做一个明确的类型转换,可以使用众多的函数之一. 2.类型转换 每种数据类型都有下面这些转换: toByte():Byte, toShort():Short, toInt():Int, toLong():Long, toFloat():Float, toDouble():D…
range(start,stop,step): 1.用于循环时使用,可以给定开始,结束,和步长 例如: >>> for i in range(2,10,2):... print i,...2 4 6 8 2.也可以不给定步长,默认是1 例如: >>> for i in range(1,5):... print i,...1 2 3 4 3.也可以不给定结尾,默认从0开始 例如: >>> for i in range(5):... print i,...…
基本要素:函数和变量 函数 函数定义规则 函数通过关键字 fun 用来声明一个函数 参数的类型与函数返回类型写在它的名称后面,这和变量声明一样 函数可以定义在文件的最外层,不一定要把它放在类中 示例: fun max(a: Int, b: Int): Int { return if (a > b) a else b } >>> println(max(1,2)) //打印结果:2 函数的声明以关键字 fun 开始,函数名称紧随其后:上面示例中函数名称是max,接下来是括号括起来的参…
enum class WEEK {星期一,星期二,星期三,星期四,星期五,星期六,星期日} Kotlin 枚举类 枚举类最基本的用法是实现一个类型安全的枚举. 枚举常量用逗号分隔,每个枚举常量都是一个对象. enum class Color{ RED,BLACK,BLUE,GREEN,WHITE } 枚举初始化 每一个枚举都是枚举类的实例,它们可以被初始化: enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE…
When 表达式 when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件. when 既可以被当做表达式使用也可以被当做语句使用.如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值. when 类似其他语言的 switch 操作符.其最简单的形式如下: when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { // 注意这个…
NULL检查机制 Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理 //类型后面加?表示可为空 var age: String? = "23" //抛出空指针异常 val ages = age!!.toInt() //不做处理返回 null val ages1 = age?.toInt() //age为空返回-1 val ages2 = age…
okhttp class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val url="http://localhost:8080/kotlin/hello.json" var client=OkHttpC…
数据类型 Kotlin跟 java 相同,基本数据类型有八种 boolean,char,int,short,long,float,double,byte 类型 位宽 最小值 最大值 Short 16 -32768 32767 Int 32 (-2^31) (2^31-1) Long 64 (-2^63) (2^63-1) Byte 8 -128 127 Float 32 - - Double 64 - - 根据数据类型,结合代码看下 // 如果变量是数字,kotlin 的数据类型默认就是 Int…
密封类 密封类用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时.在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例. 声明一个密封类,使用 sealed 修饰类,密封类可以有子类,但是所有的子类都必须要内嵌在密封类中. sealed 不能修饰 interface ,abstract class(会报 warning,但是不会出现编译错误) sealed class Expr da…
尾调用的重要性在于它可以不在调用栈上面添加一个新的堆栈帧——而是更新它,如同迭代一般. 尾递归因而具有两个特征: 调用自身函数(Self-called): 计算仅占用常量栈空间(Stack Space). tailrec fun fcnq(n:Int, pf:Int,ps: Int):Int{ if(n<=1) return pf else return fcnq(n-1,ps,pf+ps) } fun main(args: Array<String>) { println(fcnq(1…
strring.equal(str,boolean) boolean=False,默认值,区分大小写 boolean=True,不区分大小写…
${变量名} var tmp="字符串模板” print("今天学习${tmp}这个知识点")…