这段代码有错误,因为常量是不可修改的。无论是用 var 声明还是用 const 声明,都不能在代码中对常量进行赋值操作。

但是,如果我们将代码中的常量 d 改为变量,则 var 和 {$j-} 的区别是:

  1. var 声明的变量可以在后面的代码中进行赋值操作,而 {$j-} 声明的变量不能。
  2. {$j-} 会关闭类型检查,允许在赋值操作中进行不同类型之间的转换,而 var 声明的变量仍然需要满足类型一致性。

举个例子:

var i: Integer; {$j-} j: Integer; {$j+}

i := 'abc'; // 编译器会报错,因为 i 是 Integer 类型,不能赋值为字符串类型 j := 'abc'; // 编译器不会报错,因为 {$j-} 关闭了类型检查,允许进行类型转换

Delphi 常量与变量:var 和 {$j-} 的区别

原文地址: https://www.cveoy.top/t/topic/oR7p 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录