类型转换

理解JavaScript的原始类型

∥☆過路亽.° 提交于 2019-12-07 01:20:50
JavaScript中的 原始类型(primitive type) 包括 Undefined、Null、Number、Boolean和String ,其他变量均为 引用类型 ,也就 是Object Type 。原始类型保存位置是“栈内存”,而引用类型保存在“堆内存”中,但通常JavaScript中对变量的使用,并不十分关心变量在内存中的位置。 “ typeof ”操作符用以获取变量的值的数据类型。 typeof可以接受 变量名或 字面量值 作为操作数,返回一个描述变量类型信息的字符串 。需要注意的是,typeof的返回值与JavaScript中的类型并不是一一对应的: “undefined” ——变量值未定义 “number” ——变量值是数值 “boolean” ——变量值是布尔值 “string” ——变量值是字符串 “ object” ——变量值是对象或者null “function” ——变量值是函数 另外, typeof是一个像(+,-)一样的操作符,而不是函数, 虽然形如“typeof(12)”的用法不会产生错误,但对于操作符来说“typeof 12”才是合适的使用方法。 1、undefined和null Undefined Type在ECMA-262文档中的定义是: The Undefined type has exactly one value, called

Scala 谜题

北城以北 提交于 2019-12-07 01:12:42
在 Scala 中,List[String] 和 List[Int] 之间并没有继承关系,但是下面的代码竟然可以通过编译并且顺利运行: object Test extends App { val strList: List[String] = List("a", "b", "c") val strToIntList: List[Int] = strList.asInstanceOf[List[Int]] println(strToIntList) } 输出: //输出: List(a, b, c) 是的,你没看错!我们把 List[String] 成功的转换成了 List[Int] 类型。事实上真的是这样吗? 让我们来测试一下: object Test extends App { val strList: List[String] = List("a", "b", "c") val strToIntList: List[Int] = strList.asInstanceOf[List[Int]] val head = strToIntList(0) println(head) } 输出: Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java

C++: char* 与 string类型转换

谁都会走 提交于 2019-12-06 21:52:43
C++: char* 与 string类型转换 标签:C++ char* string 类型转换 by 小威威 char*属于 <cstring> ,string属于 <string> 。 要实现二者的转换,并不全是简简单单暴力赋值,而是有特殊的方法。下面我将分别介绍char*类型转化为string类型与string类型转化为char*类型。 1.char*转化为string: 法一:直接赋值法(最为简便)。 char * cstr ; string * sstr; sstr = cstr ; 法二:累加法(此处没有法一简便,但是string转化为char*用这种思路更为简便)。 for (int i = 0 ; cstr [i] != '\0' ; i ++) { sstr += cstr[i]; } string类型的字符串可通过累加的方式来添加字符的内容。 2.string 转化为 char*: 法一:循环赋值法(最为简便)。 for (int i = 0 ; i < strlen(cstr); i ++) { sstr[i] = cstr[i]; } 法二:c_str函数法: string sstr; char *cstr1; const char *cstr2; cstr2 = sstr.c_str(); int len1, len2; len1 = strlen

MySQL 隐式类型转换问题

纵然是瞬间 提交于 2019-12-06 20:58:57
项目中实际遇到问题 测试人员将数据库中bigint类型的数据手动改为0,导致字符串匹配此属性,全都匹配到为0的数据上,经查询发现为mysql的隐式类型转换的问题。 敲黑板的问题: 如果字符串的第一个字符就是非数字的字符,那么转换为数字就是0 如果字符串以数字开头 如果字符串中都是数字,那么转换为数字就是整个字符串对应的数字 如果字符串中存在非数字,那么转换为的数字就是开头的那些数字对应的值 MySQL 的隐式类型转换原则: – 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换 – 两个参数都是字符串,会按照字符串来比较,不做类型转换 – 两个参数都是整数,按照整数来比较,不做类型转换 – 十六进制的值和非数字做比较时,会被当做二进制串,和数字做比较时会按下面的规则处理 – 有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为 timestamp – 有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较 – 所有其他情况下,两个参数都会被转换为浮点数再进行比较 注意一个安全问题:假如 password

谈谈MySQL隐式类型转换

怎甘沉沦 提交于 2019-12-06 20:58:11
本文首发于个人微信公众号《andyqian》,期待您的关注! 前言 今天我们继续回到MySQL系列文章中,谈一谈MySQL中隐式类型转换。(其实我最早知道是在慢SQL优化中知道隐式类型转换概念的),在说隐式类型转换之前,首先我们通过一个实例来看看是怎么回事。 数据结构 本文中所有的操作,都是基于该数据结构(有兴趣的童鞋,可以实验): create table t_base_user( oid bigint( 20 ) not null primary key auto_increment, name varchar( 30 ) null comment "name" , email varchar( 30 ) null comment "email" , age int null comment "age" , telephone varchar( 30 ) null comment "telephone" , status tinyint( 4 ) null comment "0 无效 1 有效 " , created_at datetime null default now() comment " 创建时间 " , updated_at datetime null default now() comment " 修改时间 " ) ### 新建索引 alter table t

Scala Implicit Conversion

╄→尐↘猪︶ㄣ 提交于 2019-12-06 19:36:07
Scala Implicit Conversion 从一个简单例子出发,我们定义一个函数接受一个字符串参数,并进行输出 def func(msg: String): Unit = println(msg) 这个函数在func("11")调用时候正常,但是在执行func(11)或func(1.1)时候就会报error: type mismatch的错误。这个问题很好解决: 针对特定的参数类型,重载多个func函数,这个不难,传统JAVA中的思路,但是需要定义多个函数 使用超类型,比如使用AnyVal,Any,这样的话比较麻烦,需要在函数中针对特定的逻辑做类型转化,从而进一步处理 上面两个方法使用的是传统JAVA思路,虽然都可以解决该问题,但是缺点是不够简洁;在充满了语法糖的Scala中,针对类型转换提供了特有的implicit隐式转换的功能。 隐式转化是一个函数,可以针对一个变量在需要的时候自动的进行类型转换;针对上面的例子,我们可以定义intToString函数 def func(msg: String): Unit = println(msg) implicit def intToString(i: Int): String = i.toString func("hello world!") func(123) 运行并输出, C:\WorkSpace6-scala\scala

SpringBoot笔记 --- @JsonFormat和@DateTimeFormat的作用

拥有回忆 提交于 2019-12-06 13:50:38
@DatetimeFormat @DatetimeFormat是将String转换成Date,一般前台给后台传值时用 import org.springframework.format.annotation.DateTimeFormat; /** * 前台传后台时, 字符串自动封装成日期 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date birth; @JsonFormat @JsonFormat(pattern=”yyyy-MM-dd”) 将Date转换成String 一般后台传值给前台时 import com.fasterxml.jackson.annotation.JsonFormat; /** * 后台返给前台时, 日期自动格式化 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date birth; 注意 @JsonFormat不仅可以完成后台到前台参数传递的类型转换,还可以实现前台到后台类型转换。 当content-type为application/json时,优先使用@JsonFormat的pattern进行类型转换。而不会使用@DateTimeFormat进行类型转换。

golang之基本数据类型

回眸只為那壹抹淺笑 提交于 2019-12-06 06:56:30
目录 一、golang之基本数据类型 1. 整型 (1)有符号(范围是负数、0和正数) (2)无符号(范围是0和正数) (3)特殊整型 (4)数字字面量语法 2. 浮点型 3. 复数类型 4. 布尔类型 5. 字符串类型 (1)常见的字符串转义符 (2)多行字符串 (3)字符串常用的方法 6. byte 和 rune 类型 (1) byte (2) rune (3)总结( byte 和 rune 的对比) (4)修改字符串 7. 类型转换 一、golang之基本数据类型 共有6大基本数据类型 整型 浮点型 复数类型 布尔类型 字符串类型 byte和rune类型 1. 整型 按有无符号分为两类 (1)有符号(范围是负数、0和正数) int8、int16、int32、int64 ,后面的数字表示二进制时的长度 其中, uint8 就是我们熟知的 byte 型, int16 对应C语言中的 short 型, int64 对应C语言中的 long 型。 例子: int8 范围是 (-128 到 127) 的整数,负数比正数多一个 (2)无符号(范围是0和正数) uint8、uint16、uint32、uint64 例子: uint8 范围是 (0 到 255) 的整数 (3)特殊整型 uint : 32位操作系统上就是 uint32 ,64位操作系统上就是 uint64 int :

JavaSE基础(十)--Java中的基本数据类型转换

≡放荡痞女 提交于 2019-12-06 05:46:24
Java中的基本数据类型转换 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示。 重新温故了下原始数据类型,现在来解释下它们之间的转换关系。 自动类型转换 自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。 如: long l = 100; int i = 200; long ll = i; 具体自动转换如如下图所示。 实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。 自动转换也要小心数据溢出问题,看下面的例子。 int count = 100000000; int price = 1999; long totalPrice = count * price; 编译没任何问题,但结果却输出的是负数,这是因为两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的代表范围。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。 int count = 100000000; int price = 1999; long totalPrice = (long) count * price; 另外,向下转换时可以直接将 int 常量字面量赋值给 byte、short、char 等数据类型,而不需要强制转换

SQL - 类型转换

Deadly 提交于 2019-12-06 04:33:31
类型转换 SELECT numeric '10' / numeric '3' AS col_1; -- PG语法 SELECT '10'::numeric/'3'::numeric AS col_1; -- PG语法 SELECT CURRENT_DATE::varchar(20); -- PG语法 select cast('10' as numeric) / cast ('3' as numeric) as col_1; -- 标准的SQL语法 -- cast 函数 select substring(cast('12345' as text), 3, 1); 来源: https://www.cnblogs.com/duchaoqun/p/11962007.html