You need to enable JavaScript to run this app. Smalltalk-80中←、≡、¬、≠、⌾、∢符号的含义及使用方法是什么?
优惠活动
大模型
产品
解决方案
定价
更多

Smalltalk-80中←、≡、¬、≠、⌾、∢符号的含义及使用方法是什么?

Smalltalk-80专属特殊符号的含义与使用方式

以下符号均为Xerox Alto平台原生Smalltalk-80为适配自定义显示字体设计的专属语法,相关说明结合原生源码示例整理:

  • ← (左箭头)
    • 含义:赋值运算符,等价于后续跨平台版本通用的:=
    • 使用规则:中缀运算符,左侧为变量、实例属性等可赋值目标,右侧为待赋值的表达式,将右侧表达式的求值结果写入左侧目标。
    • 示例对应:
      • strm frame ← <构造的矩形> 即将右侧生成的矩形对象赋值给strm的frame属性
      • neg ← <布尔判断结果> 即将分支判断的返回值赋值给临时变量neg
  • ≡ (三横线)
    • 含义:对象同一性判断运算符,等价于后续版本的==,用于校验两个对象是否为同一个内存实例(而非值相等)
    • 使用规则:左结合二元中缀运算符,支持链式调用,返回布尔值。
    • 示例对应:^self class ≡ x ≡ false 按左结合规则,先判断self的类与x是否为同一对象,再将得到的布尔值与false做同一性判断,最终返回判断结果。
  • ¬ (逻辑非符号)
    • 含义:一元前缀运算符,对整数操作数执行按位取反操作(非布尔逻辑非)
    • 使用规则:直接跟在整数操作数之前,对该整数的二进制位逐位取反,返回计算后的整数结果。
    • 示例对应:¬448 即对数值448执行按位取反,后续将结果与0做不等判断。
  • ≠ (不等号)
    • 含义:不等判断运算符,等价于后续版本的~=,用于判断两个对象不满足等值条件
    • 使用规则:二元中缀运算符,返回布尔值。
    • 示例对应:mem ◦ ¬448 ≠ 0 即判断内存索引取值的结果不等于0时,返回对应布尔值。
  • ⌾ (带圈点符号)
    • 含义:二维坐标点(Point类)构造运算符,等价于后续版本的@
    • 使用规则:二元中缀运算符,左右两侧分别传入x、y坐标值,直接生成对应的Point实例。
    • 示例对应:
      • 15000 ⌾ frame origin y 即以15000为x坐标、frame对象原点的y值为y坐标,生成矩形左上角点
      • 20000 ⌾ frame corner y 即以20000为x坐标、frame对象对角点的y值为y坐标,生成矩形右下角点,两个点后续通过Point的rect:方法生成完整矩形
  • ∢ (角符号)
    • 含义:流(Stream类)对象的当前字符匹配判断方法,等价于后续版本的流字符检查方法
    • 使用规则:针对流对象调用,传入待匹配的字符编码值,返回布尔值表示当前流指向位置的字符是否与传入编码匹配。
    • 示例对应:
      • aStream ∢ 45 即检查当前流的字符是否对应编码45(即连字符-),根据匹配结果走分支逻辑
      • aStream ∢ 21 即检查当前流的字符是否对应编码21(即¬符号)

注:以上示例均提取自Xerox Alto磁盘镜像中的原生Smalltalk-80源码,后续跨平台Smalltalk版本为兼容通用ASCII编码,均替换为等价的常规语法,不再使用这些自定义特殊符号。

内容的提问来源于stack exchange,提问作者Aaron Clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 19:36:08