小编use*_*458的帖子

delphi XE多单元命名空间问题

我正在阅读Delphi XE中的RAD Studio Documentaion.这里有一些文字.

[Delphi参考 - > Delphi语言指南 - >程序和单元 - >使用命名空间 - >搜索命名空间 - >多单元命名空间]

多单元命名空间

如果单元声明引用相同的命名空间,则多个单元可以属于同一命名空间.例如,可以使用以下单元声明创建两个文件unit1.pas和unit2.pas:

// in file 'unit1.pas' 
unit MyCompany.ProjectX.ProgramY.Unit1 

// in file 'unit2.pas' 
unit MyCompany.ProjectX.ProgramY.Unit2 
Run Code Online (Sandbox Code Playgroud)

在此示例中,命名空间MyCompany.ProjectX.ProgramY逻辑上包含unit1.pas和unit2.pas中的所有接口符号.

命名空间中的符号名称必须是唯一的,跨命名空间中的所有单元.
在上面的示例中,Unit1和Unit2都定义了一个名为mySymbol的全局接口符号,这是一个错误

我测试了这个.代码如下.

----------------------------------------------------------------- 
program Project1; 

{$APPTYPE CONSOLE} 

uses 
  SysUtils, 
  Lib.A in 'Lib.A.pas', 
  Lib.B in 'Lib.B.pas'; 

begin 
  WriteLn ( TestValue ) ; 
  ReadLn ; 
end. 
----------------------------------------------------------------- 
unit Lib.A; 

interface 
  const TestValue : Integer = 10 ; 
implementation 

end. 
----------------------------------------------------------------- 
unit Lib.B; 

interface 
  const TestValue : Integer = 10 ; …
Run Code Online (Sandbox Code Playgroud)

delphi namespaces delphi-xe

11
推荐指数
1
解决办法
2229
查看次数

为什么 a -> b -> c 函数参数可以接受 a -> a 类型?

这编译成功:

test = f id
f :: (a -> b -> c) -> String
f g =  "test"
Run Code Online (Sandbox Code Playgroud)

id有 type a -> a,但f有一个 type 的第一个参数(a -> b -> c)

我认为它不应该编译。我不明白。

haskell

3
推荐指数
2
解决办法
114
查看次数

标签 统计

delphi ×1

delphi-xe ×1

haskell ×1

namespaces ×1