标签:
在数学中1+1=2,在程序中1+1=2,而1+"1"=?
围绕着1+"1"的问题,我们来思考下这个问题。
目录:
一、在.Net代码中
二、在JavaScript代码中
三、在SQLServer代码中
四、在PowerShell代码中
五、还有更多的语言值得我们去探讨
Console.Write("例1:"); Console.WriteLine("1 + " + ‘"‘ + "1" + ‘"‘+" = ?"); int a = 1; Console.WriteLine("a = {0}", a); Console.WriteLine("a 的类型:{0}", a.GetType()); string b = "1"; Console.WriteLine("b = " + ‘"‘ + "1" + ‘"‘); Console.WriteLine("b 的类型:{0}", b.GetType()); Console.WriteLine("a + b = {0}",a+b); Console.WriteLine("a + b 的类型:{0}", (a + b).GetType()); Console.WriteLine(); Console.WriteLine(); Console.Write("例2:"); Console.WriteLine("1 + ‘1‘ = ?"); Console.WriteLine("a = {0}", a); Console.WriteLine("a 的类型:{0}", a.GetType()); char c = ‘1‘; Console.WriteLine("c = " + "‘1‘"); Console.WriteLine("c 的类型:{0}", c.GetType()); Console.WriteLine("a + c = {0}", a + c); Console.WriteLine("a + c 的类型:{0}", (a + c).GetType());
在.Net代码中
<html> <head> <script> //例1:1 + "1" = ? var a = 1; var b = "1"; var result = a + b; alert(result); //例2:1 + ‘1‘ = ? var c = ‘1‘; var result = a + c; alert(result); //例3:1 + ‘a‘ = ? var c = ‘a‘; var result = a + c; alert(result); </script> <body> </body> </html>
例1、例2运行结果都是11,如图1
图1
例3运行结果是1a,如图2
图2
图3
在JavaScript代码中
----例1 --declare @a int --declare @b char --set @a=1 --set @b=‘1‘ --print ‘例1结果:‘ --print @a+@b --2 ----例2 --declare @c char --set @c=‘12‘ --print ‘例2结果:‘ --print @a+@c --2 ----例3 --declare @d char --set @d=‘d‘ --print ‘例3结果:‘ --print @a+@d --在将 varchar 值 ‘d‘ 转换成数据类型 int 时失败。 --例4 print ‘例4结果:‘ select 1+‘1‘ as ‘例4结果‘ --例5 print ‘例5结果:‘ select 1+‘12‘ as ‘例5结果‘
在SQL Server代码中
#例1 1+‘1‘=? $a=1 $b=‘1‘ $a+$b #例2 1+‘12‘=? $a=1 $b=‘12‘ $a+$b #例3 1+"1"=? $a=1 $c="1" $a+$c #例3 1+"a"=? $a=1 $d="a" $a+$d
在PowerShell代码中
如下图所示:
标签:
原文地址:http://www.cnblogs.com/jackson0714/p/4584690.html