cast(字段 as unsigned) 例如1:把表结构中的name(字符串) 字段转化成整型 cast(name as unsigned) 应用:将表A记录按name 字段从小到大排列 select
在 Kotlin 当中,函数也是作为类型的一种出现的,尽管在当前的版本中,函数类型的灵活性还不如 Python 这样的语言,不过它也是可以被赋值和传递的,这主要就体现在 Lambda 表达式上。...接着,Kotlin 允许我们把函数的最后一个Lambda表达式参数移除括号外,也就是说,我们可以改下上面的 forEach 的写法: args.forEach(){ element ->...我们再来看几个例子: () -> Int //无参,返回 Int (Int, Int) -> String //两个整型参数,返回字符串类型 (()->Unit, Int) -> Unit...表达式被映射成 kotlin/Function23 这个类,不过,这个类却不存在,也就是说,对于超过 22 个参数的 Lambda 表达式,Kotlin 代码可以编译通过,但会抛运行时异常。...第二句,拿到这个类的实例以后做强转——还转啥,直接拿来用呗,肯定没问题呀。 那你说 SAM 转换有什么条件呢? 首先,调用者在 Kotlin 当中,被调用者是 Java 代码。
下面的示例显示了sorted()如何将传递给它的字符串进行遍历,并在输出中对每个字符进行排序: >>> string_number_value = '34521' >>> string_value =...数字1可以转换为True作为bool类型,而0转换为False。...B', 1 <= 0] >>> sorted(similar_values) [False, 0, False, False, 1] 'A'=='B'和1 <= 0转换为False并在有序输出中返回。...False, False] >>> sorted(false_values) [False, 0, 0, False, 0, False, False] 如果检查原始顺序和排序输出,可以看到1 == 2转换为...例如,有一个数字列表,表示为要在sorted中使用的字符串,而key将尝试将它们转换为使用int。
上次我们学习了kotlin的null安全、异常、先决条件,接下来来看看kotlin的字符串操作、数字类型、标准库函数 一、字符串操作 1.字符串截取 substring函数支持IntRange类型参数,...在编译时会自动把一样的字符串的变量指向同一片内存 5.遍历字符串 forEach函数 const val bookName = "Introduction to algorithms" fun main...= "8.56".toIntOrNull() println(num) } 2.Double转Int fun main() { //去掉小数 var num = 8.56.toInt...my book.txt").let { it.readText() } println(content) } 总结下它们的区别: 函数 作用域 返回值 let it lambda...结果 aslo it 接收者 run 接收者 lambda结果 apply 接收者 接收者 6.takeIf takeif需要判断lambda中的结果是true还是false,如果是false返回null
转 上面的这段代码说明: inline fun Collection?....只能类型强转: cat as Cat. fun Animal.isCat(): Boolean { return this is Cat } 这个时候 , 神奇的contract 魔法出现了:...表示block lambda表达式只能被调用一次,此外这个外层函数还必须是个inline内联函数。.../stdlib/kotlin.collections/is-null-or-empty.html ---- Kotlin 开发者社区 国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin...Kotlin 开发者社区
但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何将他隐藏起来。原理是不变的。变得是写法。下面我们来看如何优雅的处理异常块。 在这之前。...Lambda表达式: java8提出:Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式,它没有名称,但它有函数体,参数列表,返回类型。可以抛出一个异常类型。...包装代码逻辑为参数即使用Lambda表达式。 函数式接口: 本质上是只有一个抽象方法的普通接口,可以被隐式的转换为Lambda表达式,需要用注解定义(@FunctionalInterface)。...其实这种思想并不简单的可以做捕获异常的处理, 我们来看一个Demo-> 文本文件转换为字符串: 在我看来;将文本文件转换为字符串,我们需要使用高级流包装低级流,然后做缓存读出来。...} } 执行 /** * @return java.lang.String * @Author Liruilong * @Description 文件转字符串
= null // 声明一个可为空的字符串变量 sex,String 与 String? 不是同种 String 和 String?...可以强转类型,如下代码。name2 是可为空的 String? 类型,直接赋给不可为空的 name1 就会报错。如果确定 name2 一定不为空,则可以在后面加上 "!!" 强转。...Lambda 闭包 1....因为 Kotlin 只为我们定义了含有 22 个参数的 Function22,如图所示: 如果我们需要用到 23个参数的 Lambda 闭包该怎么办呢?...)的参数也是一个函数(Lambda)。
那么这事儿就成啦: start() 既然这样,我们除了可以有上一回提到的两种普通解法之外,还应该有以下几种高端解法: 默认参数法: fun start(str: String = "OK") = str Lambda...我们今天按照 Kotlin Koan 给出的顺序,要解毒的就是下面这道题: 把下面这段 Java 代码转换为 Kotlin 代码: public class JavaCode { public String...从此以后,我就成了 Kotlin 大神,反正只要用工具把 Java 代码转一下就好啦,还学什么学 >.<! 2....什么玩意,空指针啊 后来我就经常需要将原来用 Java 编写的 Activity 转换为 Kotlin 版本的,例如: public class TestActivity extends Activity...= ", ", prefix = "[", postfix = "]") 不就是拼接字符串么,还用得着亲自动手?
主动处理中繁琐的try{}caht嵌套在代码里,看着很不舒服 这里我们不讨论性能,就代码来讲,来看看如何将他隐藏起来。原理是不变的。变得是写法。下面我们来看如何优雅的处理异常块。...Lambda表达式 java8提出:Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式,它没有名称,但它有函数体,参数列表,返回类型。可以抛出一个异常类型。...包装代码逻辑为参数即使用Lambda表达式。 函数式接口: 本质上是只有一个抽象方法的普通接口,可以被隐式的转换为Lambda表达式,需要用注解定义(@FunctionalInterface)。...其实这种思想并不简单的可以做捕获异常的处理, 我们来看一个Demo 文本文件转换为字符串: 在我看来;将文本文件转换为字符串,我们需要使用高级流包装低级流,然后做缓存读出来。...} 如何使用这个定义好的行为 /** * @return java.lang.String * @Author Liruilong * @Description 文件转字符串
上次我们学习了kotlin的字符串操作、数字类型、标准库函数,接下来我们来学习集合,和其他变量类型一样,集合也分为可变和只读 一、List 1.List集合创建与元素获取 调用listOf函数创建集合,...还提供了安全索引取值函数,使用它们就不会下标溢出了 getOrElse:如果不存在,则返回lambda结果 fun main() { //listOf创建List集合 var list...mutableList = mutableListOf("张三", "李四", "王五") mutableList += "孙七" mutableList -= "王五" } 还可以基于lambda...val set = mutableSetOf("张三", "李四", "王五") set += "赵四" println(set.elementAt(1)) } 3.List转Set...对应的值,不存在返回null getValue,读取key对应的值,不存在抛异常 getOrDefault,读取key对应的值,不存在返回默认值 getOrElse,读取key对应的值,不存在返回lambda
print(''.join([str(x) for x in lst])) # 0124 2 十转八 Join +Generator Expression(生成器)+ Str 由于join()函数需要一个字符串列表...,因此需要使用 str(x)函数将所有对象转换为纯字符串。...print(''.join(str(x.val) for x in lst))# 0124 4 join+ map + Lambda map() 函数将每个元组转换为字符串值,并且使用 join()...方法将字符串集合转换为单个字符串。...print(''.join(map(lambda x: str(x), lst)))# 0124 5 Join + Map + Str 无需使用 lambda 函数将每个列表元素转换为字符串形式。
,可能导致一部分公司放弃Java 当前已经有许多公司的招聘要求中,要求开发人员需要会kotlin kotlin的学习成本并不是很高,从Java转kotlin,一般一周时间就足以完成,且kotlin与Java...表达式 主要内容:函数、高阶函数与 lambda 表达式 image.png 5.其它 主要内容:多重申明,Ranges,类型检查和自动转换,This表达式,等式,运算符重载,空安全,异常,注解,反射,...定义常量与变量 null 声明 空判断 字符串拼接 三元表达式 多重条件 更灵活的 case 语句 for 循环 更方便的集合操作 遍历 方法定义 constructor 构造器 Get Set 构造器...函数类型,高阶函数,Lambda,它们分别是什么?...为什么要引入 Lambda 和 高阶函数? 带接收者(Receiver)的函数类型:A.
)、甜(富含糖份Lambda),第二主要食材,切好块状 Java,少量,Kotlin这种食材需要它来做引子 锅,AndroidStudio、Eclipse这两个牌子的锅质量都不错 调味料,Kotlin... defaultValue } } fun main(args: Array) { println("1".toIntSafely()) } String 转...另lambda里面不能写return,最后一行的值就是返回值 从数学函数角度抽象理解 函数: y = f(x) 假设x与y都是Int类型 可以理解为 Kotlin 函数: fun f(x: Int):...{ x: Int -> 1 } 使用时f(1),但是如果像上述那种f(x)的kotlin函数与f(x)的lambda同时同名同方法签名存在,使用上要f(1)与f.invoke(1)来区分是函数调用还是lambda...调用 假设x与y都是Lambda类型 x是Lambda类型 (Int) -> Int ,y是Lambda类型 (Int) -> Int,可以换算成 fun f(x: (Int) -> Int): (Int
必须按照定义的顺序传递 , 如果使用 具名参数 , 可以不必按照参数顺序传递参数 ; 代码示例 : 在下面的代码中 , 函数参数为 name: String, age: Int , 先传递 String 类型值 , 然后再传递...* * @param reason一个解释为什么缺少实现的字符串。...表达式 上 , 也就是匿名函数中 , 会提示 Lambda argument should be moved out of parentheses 参数应该移出圆括号 Kotlin 建议我们移除 Lambda...action: (String, Int) -> String) { val act = action(name, age); println(act) } 将字节码转换为...---- Kotlin 中引入 函数类型 , 将 匿名函数 / Lambda 表达式 / 闭包 作为 函数参数 或 返回值 , 可以写出 更加灵活的代码 ; Java 8 开始 支持 Lambda 表达式
2、二进制转十进制 decimal = int('1010', 2) print(decimal) #10 3、将字符串转换为小写 print("Hi my name is XiaoF".lower()...) # 'hi my name is xiaof' print("Hi my name is XiaoF".casefold()) # 'hi my name is xiaof' 4、将字符串转换为大写...print("hi my name is XiaoF".upper()) # 'HI MY NAME IS XIAOF' 5、将字符串转换为字节 print("convert string to bytes...import string print(string.digits) # 0123456789 41、十六进制转十进制 print(int('da9', 16)) # 3497 42、日期时间 import...time print(time.ctime()) # Thu Aug 13 20:00:00 2021 43、将列表中的字符串转换为整数 print(list(map(int, ['1', '2',
▍2、二进制转十进制 decimal = int('1010', 2) print(decimal) #10 ▍3、将字符串转换为小写 print("Hi my name is XiaoF".lower...()) # 'hi my name is xiaof' print("Hi my name is XiaoF".casefold()) # 'hi my name is xiaof' ▍4、将字符串转换为大写...print("hi my name is XiaoF".upper()) # 'HI MY NAME IS XIAOF' ▍5、将字符串转换为字节 print("convert string to bytes...import string print(string.digits) # 0123456789 ▍41、十六进制转十进制 print(int('da9', 16)) # 3497 ▍42、日期时间...import time print(time.ctime()) # Thu Aug 13 20:00:00 2021 ▍43、将列表中的字符串转换为整数 print(list(map(int, ['1
函数式接口 1.函数式接口的由来 我们知道使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。...2.1 Supplier 无参有返回值的接口,对于的Lambda表达式需要提供一个返回数据的类型。...* * @param t the input argument */ void accept(T t); } 使用:将输入的数据统一转换为小写输出 public...consumer.accept("Hello World"); } } 默认方法:andThen 如果一个方法的参数和返回值全部是Consumer类型,那么就可以实现效果,消费一个数据的时候,首先做一个操作,然后再做一个操作...param t the function argument * @return the function result */ R apply(T t); } 使用:传递进入一个字符串返回一个数字
1.十转二 2.十转八 3 十转十六 4.字符串转字节 5.转为字符串 6.十转 ASCII 7.ASCII 转十 8.转为字典 9.转为浮点类型 10.转为整型 11....将十进制转换为二进制: >>> bin(10) '0b1010' 2.十转八 十进制转换为八进制: >>> oct(9) '0o11' 3 十转十六 十进制转换为十六进制: >>> hex...(15) '0xf' 4.字符串转字节 字符串转换为字节类型 >>> s = "apple" >>> bytes(s,encoding='utf-8') b'apple' 5.转为字符串 字符类型...、数值型等转换为字符串类型 >>> i = 100 >>> str(i) '100' 6.十转 ASCII 十进制整数对应的 ASCII 字符 chr(65) ‘A’ 7.ASCII...[1,2])) { 'a': 1, 'b': 2} >>> dict([('a',1),('b',2)]) { 'a': 1, 'b': 2} 9.转为浮点类型 整数或数值型字符串转换为浮点数
函数式接口的由来 我们知道使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。...2.1 Supplier 无参有返回值的接口,对于的Lambda表达式需要提供一个返回数据的类型。...* * @param t the input argument */ void accept(T t);}使用:将输入的数据统一转换为小写输出public class ConsumerTest...consumer.accept("Hello World"); }}默认方法:andThen 如果一个方法的参数和返回值全部是Consumer类型,那么就可以实现效果,消费一个数据的时候,首先做一个操作,然后再做一个操作...* @param t the function argument * @return the function result */ R apply(T t);}使用:传递进入一个字符串返回一个数字
那我们接下来看一看Kotlin的特点,当然这也是我改用Kotlin的重要原因。 语法简单,不啰嗦 Kotlin支持类型推断,没有Java那样的啰嗦。...Lambda, 高阶函数,Streams API, 函数式编程支持 所谓的Lambda表达式是匿名函数,这使得我们的代码会更加的简单。比如下面的代码就是lambda的应用。...字符串模板 无论是Java还是Android开发,我们都会用到字符串拼接,比如进行日志输出等等。...在Kotlin中,字符串模板是支持的,我们可以很轻松的完成一个字符串数组的组成 注意:关于字符串拼接可以参考这篇文章Java细节:字符串的拼接 与Java交互性好 Kotlin和Java都属于基于JVM...现在好了,有了Google的支持,Kotlin转Android相信在不久的将来就会全面展开。
领取专属 10元无门槛券
手把手带您无忧上云