Smalltalk是一门完全基于对象和消息的语言,在smalltalk中,一切都是对象。
Literal对象:这些对象的名字就决定了对象本身,比如数字,字符串。
Number对象:数字对象,比如7, 16rFF, 3.1415等等;
Char对象:字符对象,如$A,$7,$$等等;
String对象:字符串对象,如'This is a string','a string with an ''embedded string';
Array对象:如#(this is an array),#(12 'abc' (embedded array));
Symbol对象:如#aSymbol;
Identifiers标志符:分为三类,实例变量、类名、伪变量,类名首字母一定大写。
实例变量名必须声明才能使用,可以用<-来赋值;
伪变量无需声明,比如self、super、selfProcess、true、false、nil、smalltalk;
Messages消息:在smalltalk里,所有的操作都是通过给对象发送消息实现的。任何消息分为三个部分:一个receiver,一个消息selector,0个或者几个arguments。Message分为三类:unary消息,binary消息和keyword消息。
unary消息:没有argument,如7 sign,7 factorial;
binary消息:有一个argument,如7 + 4。从左到右的优先级,7 + 4 * 3返回33而不是19。但是unary消息比binary消息有更高的优先级;
keyword消息:keyword消息的selector包含一个或者多个keyword,每个keyword后边跟':',然后有一个argument。如7 max: 14,7 between:2 and: 24。keyword消息优先级更低;
Blocks:.意味着语句的结束,可以用[]将几个语句组合起来形成一个block,如[i<-i+1. i print]。Block可以被看作一个in-line的过程,所以它也可以有参数:[ :x :y | (x+y) print ]。
注释和续行:"This is a comment",\用于续行。
No comments:
Post a Comment