Monthly Archives: February 2011

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)

参考:http://www.erlang.org/doc/reference_manual/expressions.html

Erlang的比较运算符

op Description
== 等于
/= 不等于
=< 小于等于
< 小于
>= 大于等于
> 大于
=:= 精确的等于
=/= 精确的不等于
等于和精确等于的区别:

如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:

1> 1==1.0.
true
2> 1=:=1.0.
false

所以一般推荐用精确等于去比较

比较运算符的大小级别:

number < atom < reference < fun < port < pid < tuple < list < bit string

3> 1 > a.

false

op Description Argument type
+ number
number
+ number
number
* number
/ 浮点数除法,结果是浮点数 number
bnot 一元not运算符 integer
div 整数除法,结果是整数 integer
rem 求玉树 integer
band and运算 integer
bor or运算 integer
bxor xor异或运算 integer
bsl 左移位操作 integer
bsr 右移位操作 integer

逻辑运算符

op Description
not 一元逻辑not
and 逻辑and
or 逻辑or
xor 逻辑xor
原子true 和false表示逻辑的”真”和”假”

此外,逻辑运算符还包括一个orelse 和andalso

原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。

短路运算举例

Express1 and Express2

Express1 andalso Express2

如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些

Linode支持的信用卡

 

LinodeVPS口碑非常不错,价格也适中。博得很多国内站长的好感。

但是Linode购买只能通过支持信用卡,而且是国际(Visa, Master)卡才行。

 

只要能正常支付外币的基本都可以,像中行的或者招行的。推荐大家使用招商银行的信用卡,申请方便,手续简便。

 

测试过工行的Visa卡,貌似不可以。

MySQL Workbench “Error Code: 1175” 的解决方法

今日用MySQL Workbench进行数据库的管理更新时,执行一个更新的语句碰到以下错误提示:

Error Code: 1175

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

进过一番搜索之后发现原来是MySQL Workbench的安全设置。当要执行的SQL语句是进行批量更新或者删除的时候就会提示这个错误。

解决方法如下:

  • 打开Workbench的菜单[Edit]->[Preferences…]
  • 切换到[SQL Editor]页面
  • [Forbid UPDATE and DELETE statements without a WHERE clause (safe updates)]之前的对勾去掉
  • 点击[OK]按钮
  • 最后一步记得要重启一下Workbench,否则你仍然会得到这个错误提示。


如下图:

再次运行SQL语句就没问题了