整数作为logtalk中的对象_识别器



我有一个协议学生:

:- protocol(student).
    :- public([
        name/1,
        surname/1,
        studies/1,
        marks/1
    ]).
:- end_protocol.

现在我想制作一个名称是ID(整数)的对象,但是当我尝试使用create_object(18342, [implements(student)], [], [name(john), surname(smith), studies(it), marks(ok)]).

进行此对象

swilgt给Mi一个错误:

错误:键入错误:'object_Identifier'预期,找到'18342'(整数)

ofc我可以使用引号,但我不想。是否可以将整数用作名称的选项,或者我使用字符串并在协议中添加ID/1?

确实是(当前)使用整数作为对象标识符。一种选择确实是使用原子,例如'133'而不是123。不要使用字符串,例如"123"作为双引号文本的实际含义取决于double_quotes标准Prolog标志,其唯一的便携值是codes(即"123"被解释为[49,50,51]

在整数和原子之间转换的一种便携式方法是使用标准谓词number_codes/2atom_codes/2(或number_chars/2atom_chars/2)。一些支持的后端序言系统还提供了专有的内置谓词,可以直接在数字和原子之间转换。

相关内容

  • 没有找到相关文章

最新更新