大家好,又见面了,我是你们的朋友全栈君。 python中 Int8 Int16 Int32 Int64 float uint8 Int8, 占1个字节. Int16, 占2个字节....Int32, 占4个字节....Int64, 占8个字节. float类型取值范围 :-1 到1 或者 0到1 uint8类型取值范围:0到255(通常用于RGB图像中) # 转换 img.astype('uint8') 发布者:全栈程序员栈长
对于代码中可能的异常进行处理,可以增加程序的健壮性。在python中,通过try..except语句进行异常捕获,基本用法如下 >>> def calc(a, b): ......代码块中 用except捕获对应的异常,except语句可以有多条,对应多个不同类型的异常,当try中的某条语句跑出异常之后,程序就会根据异常类型,执行对应的except语句 记住所有的异常类型基本是不可能的...,在实际开发中,往往是根据经验,先设定几个可能的异常类型,当遇到超出范围的异常时,在修改代码,捕获对应的异常。...try语句有两个可选的语句 else finally else语句只有当try中的代码没有抛出异常时,才会执行; finally语句在try语句正常执行或者异常被处理之后就会执行,示例如下 >>> def...most recent call last): File "", line 1, in NameError: name 'a' is not defined 在实际开发中,
今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的...什么是捕获组 我们先看一下PHP的正则匹配函数 int preg_match ( string $pattern , string $subject [, array &$matches [, int...,捕获组是正则表达示中以()括起来的部分,每一对()是一个捕获组。...捕获组的忽略与命名 我们还可以阻止PHP为匹配组的编号:在匹配组中模式前加 ?: $mode = '/a=(\d+)b=(?...非捕获组的用法: 为什么称为非捕获组呢?那是因为它们有捕获组的特性,在匹配模式的()中,但是匹配时,PHP不会为它们编组,它们只会影响匹配结果,并不作为结果输出。 /d(?
一、kotlin如何抛异常 Kotlin中的异常处理与Java或者其他语言中的处理方式相似。一个函数可以以正常方式结束,或者当错误发生的时候抛出异常。...Kotlin中的异常处理语句的基本形式和Java是相似的: java中: if(0 <= percentage <= 100){ throw new IllegalArgumentException...(reader)) //239 java中: public int readNumber(BufferedReader reader) throws IOException{ //显式地指定这个函数可能抛出的异常...所以Java编译器不会强迫你捕获这个异常,你可以很容易的看见运行时的异常。这相当令人遗憾,因为不有效的输入数据是经常的事情,应该更优雅的处理。...如果捕获到一个异常,那么cache代码块中最后一个表达式就是结果。 四、总结 1、kotlin中的异常处理和java处理相似,除了Kotlin不要求你声明函数可以抛出的异常。
Lambda表达式或匿名函数可以访问或修改其所在上下文中的变量和常量,这个过程被称为捕获。...(): List<String { //向list集合中添加一个元素 list.add(ele) return list } return ::addElement } }...上例中顶一个一个局部函数,这个局部函数可访问或修改其所在函数中的变量。...Lambda表达式或匿名函数都会持有一个其所捕获的变量的副本,因此表面上看addElement()访问的是makeList()函数的list集合变量,但只要程序返回一个新的addElement()函数,...Lambda表达式或匿名函数都会持有一个其所捕获的变量的副本,因此表面上看addElement()访问的是makeList()函数的list集合变量,只要程序返回一个新的addElement()函数,就会持有一个新的
昨天有个读者问了我这样一个问题在mysql中建表的时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度的数字,这是什么情况?...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型在计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 的 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...现在再来看看这个int(1)中的1究竟有什么奥秘。这个1跟这个字段能存的数据范围没关系,它也不是限制这个字段的数据长度的。这个字段存储的数据范围是由int来限制的。...比如我们将int(1)改成int(3),我们再输入1,实际上显示的是001。所以无论你将 int 类型的长度设为多少并不会影响数据的存储范围。...mysql对于整型的数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。
提问: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?...回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。 如果你的答案和上面的一致,恭喜你和我犯了一样的错误。...发现,无论是int(3), int(6), 都可以显示6位以上的整数。但是,当数字不足3位或6位时,前面会用0补齐。...也就是说,int的长度并不影响数据的存储精度,长度只和显示有关,为了让大家看的更清楚,我们在上面例子的建表语句中,使用了zerofill。...结论: 无论是unsigned int(3)或 unsiend int(6),存储的都是4字节无符号整数, 也就是0~2^32。
疑问: mysql的字段,unsigned int(4), 和unsinged int(5), 能存储的数值范围是否相同。如果不同,分别是多大?...答: 无论是int(4), int(5), 存储的都是4字节无符号整数, 也就是0~2^32。。但是,当数字不足4位或5位时,前面会用0补齐。...MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。 该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。 也就是说,int的长度并不影响数据的存储精度,长度只和显示有关
例子如下: 在Android开发中,打印信息 //通过关键字inline来定义内联函数。 //泛型中的 reified关键字告诉编译器,这个泛型是可以具体拿到值的泛型。...这里等待后面具体来看什么时候非内联 在 Kotlin 中,我们可以只使用一个正常的、非限定的 return 来退出一个命名或匿名函数。...):Int=x*2 局部函数 Kotlin 支持局部函数,即一个函数在另一个函数内部。...与 Java 不同的是可以修改闭包中捕获的变量: var sum = 0 ints.filter { it > 0 }.forEach { sum += it } print(sum) 带接收者的函数字面值...其用法的最重要的示例之一就是类型类型安全的Groovy-风格构建器 //这样的函数字面值的类型是一个带有接收者的函数类型: //下面是定义参数 sum : Int.
Kotlin 中的 扩展 到底是什么?...简单使用: 扩展函数 //要扩展哪个类中的方法,被扩展的类名就是哪个 fun 被扩展的类名.扩展函数名(..参数..){ 函数体 } 例如: 在Array中扩展一个元素交换的方法 fun Array<Int...Kotlin 的扩展是一个很独特的功能, Java 本身并不支持扩展, Kotlin 为了让扩展能在JVM平台上运行,必须做一些独特的处理 Kotiin 支持扩展方法和扩展属性 扩展的实现机制 Java...但现在 Kotlin 的扩展却好像可以动态地为一个类增加新的方法,而且不需要重新修改该 类的源代码,那 Kotlin 扩展的实际情况是怎样的呢?难道 Kotlin 可以突破 NM 的限制?...实际上, Kotlin 的扩展并没有真正地修改所扩展的类,被扩展的类还是原来的类,没有任 何改变。
好了,从这个时候开始,浏览器就会运行自己的事件循环,查看是否有各种事件发生 于是,这个时候,用户点击了一下页面上的某一块位置,但是浏览器并不知道用户点 击了哪一个dom,并且也不知道该dom是否有事件响应程序...,浏览器知道的只是用户点 击的位置的x,y坐标,浏览器这个时候就开始从dom树的根开始寻找,(这里是捕获的 开始),x,y是否在根的位置上,根有没有注册点击事件?...点击事件是否是捕获注册的 ?...如果事件是捕获注册的,那么执行这个事件处理函数,在该函数中,判断是否有 event.stopPropagation()来阻止事件的捕获,若阻止了,那么该点击事件的整个过程就完 成了,不论子节点是否注册了点击事件都不会执行到的...在回 去的过程中,判断每个节点是否注册了点击事件,是否是冒泡注册的,如果是冒泡注册的 事件,那么就执行,执行过程中如果发生了event.stopPropagation(),那么整个点击事件 就结束了
String item = new String(b, n, m)的用法,其中b为byte[]数组,n,m为int类型....简单的来说就是byte数组b从下标为n开始前进m个下标的那一段数组变为字符串item。概念比较难理解,下面直接看例子吧!... 结果 item=34 例如2: String item=new String(b,0,3) 结果 item=123 看例子可以很清楚的看到...new String(byte[] b, int n, int m)中个参数的作用。...这种情况一般出现在要对byte进行处理的情况。 例如Android中加密和解密的过程就会用到这种情况。
About Kotlin(2) 继续昨天的部分。介绍Kotlin中的类。...Kotlin中的类 抽象类和接口 抽象类 跟Java一样,使用abstract关键字 open class Base{ open fun f(){} } abstract class Derived...其实是一组类的集合。可以用来表示受限的类的继承结构。 其也可以有子类,所有子类也必须在相同的文件中声明。...val demo = Outer().Inner().foo() 嵌套类 不用inner标记,直接写在类的内部的类,在kotlin中称为所谓的嵌套类 class Outer{ private val...接下来,也还是会按照参考文章的这个思路。记录Kotlin中的属性。方法。修饰符。
int -> String int i=12345; String s=”“; 第一种方法:s=i+”“; 第二种方法:s=String.valueOf(i); String -> int...s=”12345”; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s).intValue(); 第一种方法:s=...i+”“; //会产生两个String对象第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象 第一种方法:i=Integer.parseInt...(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer
自带的汇编器分析下实现,由于转成的汇编代码(基于ARMv7)太长这里只讲关键部分 首先对于实例方法会带上两个隐藏的参数,一个是self,一个是cmd,下面是调用testBlock方法之前的初始化部分 push...,调用了最后的_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量的时候会把捕获的变量放到结构体内,总之这里关键就是要看是否有将self强引用并捕获到...即强持有self 最后的最后看一下block调用的反编译结果 int ___19-[KDTest testBlock]_block_invoke(int arg0) { var_18 = objc_loadWeakRetained...++方法,这里加不加self会导致不同的赋值方式,不加self的情况会使用block中持有的self来访问。...但缺点是得时刻注意不要错写成self __strong KDTest *self = weak_self; 第二种就是空间里面使用的,重新定义的变量就叫self(其实这里编译器也不让重新定义self的,
本文就来说一下这个值是这么计算出来的。本文以4字节的int为例。...二、源码部分 关于转换的部分主要集中在函数 row_mysql_store_col_in_innobase_format 中,我们来看一下数字的转换代码如下: if (type == DATA_INT)...//存入dtuple中,里面很简单就是取void* 存进去进行了。...innblock和bcview查看二进制文件中存储的方式。...7ffffffb 实际记录-5 000000014224 trx id bd00000023011d roll ptr 我们可以发现我们的分析是正确,确实物理文件中也是这样存储的。
About Kotlin(1) 因为是从Java的角度来学习Kotlin,在Java中,类作为第一等公民。故学习Kotlin,也先从其的类开始。...Kotlin中的类 普通的类 class Kotlin中没有添加修饰符直接以class开头的都是final类。final类的意义在于JVM可能存在的优化(常量和方法内联)和防止继承的滥用。...class Customer(val firstName:String="",var lastName:String,var age:Int){ } Kotlin中可以提供默认值的方式,解放了手写的代码量...在Kotlin中,override不是可选的注解而是强制关键字。所以由此引发的bug就不会再有了,编译器会提前警告你。Kotlin把这些事清楚的展现出来。...//在Kotlin中,可以使用data关键字 data class User(val name:String,val age:Int) 自动生成的函数 编译器会自动的从主构造函数中根据所有声明的属性提取以下函数
万物皆对象 对象就是类的实例化 用Kotlin描述对象 class Friend{ var name: String = "" var hairColor: String...val name: String = name val age: Int = age init{ } } 次构造 次构造函数体写在Friend类定义的大括号中...,也就是代码块中。...我们把这个函数属性定义为变量是为了可以日后进行改变以进行来个数的新的操作,在方法operation中,我们执行了这个函数,当然,一个属性能够当成函数来执行是不是很神奇呢?...这就是Kotlin函数式编程的魅力!
Flutter 框架可以捕获运行期间的错误,包括构建期间、布局期间和绘制期间。 所有 Flutter 的错误均会被回调方法 FlutterError.onError 捕获。...默认情况下,会调用 FlutterError.dumpErrorToConsole 方法,正如方法名表示的那样,将错误转储到当前的设备日志中。...如果在调用堆栈上没有 Flutter 回调的情况下发生错误(这里可以理解为FlutterError.onError仅仅可以捕获主线程的错误,而其他异步线程的错误则需要Zone来捕获),它们由发生区域的...如果你想捕获这样的错误,请使用 runZonedGuarded。...然后在app中还需要定义一个友好的错误页面。
自带的汇编器分析下实现,由于转成的汇编代码(基于ARMv7)太长这里只讲关键部分 首先对于实例方法会带上两个隐藏的参数,一个是self,一个是cmd,下面是调用testBlock方法之前的初始化部分 push...,调用了最后的_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量的时候会把捕获的变量放到结构体内,总之这里关键就是要看是否有将self强引用并捕获到...即强持有self 最后的最后看一下block调用的反编译结果 int ___19-[KDTest testBlock]_block_invoke(int arg0) { var_18 = objc_loadWeakRetained...++方法,这里加不加self会导致不同的赋值方式,不加self的情况会使用block中持有的self来访问。...*strong_self = weak_self; 第二种就是空间里面使用的,重新定义的变量就叫self(其实这里编译器也不让重新定义self的,只是在宏里面强行掩盖掉了),优点是发消息的时候不用担心写错了直接用
领取专属 10元无门槛券
手把手带您无忧上云