首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logtalk中整数形式为object_identifier

Logtalk中整数形式为object_identifier
EN

Stack Overflow用户
提问于 2018-12-19 07:48:38
回答 1查看 17关注 0票数 1

我有个礼仪学生:

代码语言:javascript
复制
:- protocol(student).
    :- public([
        name/1,
        surname/1,
        studies/1,
        marks/1
    ]).
:- end_protocol.

现在,我想要创建一个名为ID (Integer)的对象,但当我试图使用create_object(18342, [implements(student)], [], [name(john), surname(smith), studies(it), marks(ok)]).进行此操作时

swilgt给出了错误:

错误:输入错误:“object_identifier”预期,找到'18342‘(一个整数)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 18:15:42

实际上(目前)不可能使用整数作为对象标识符。一种选择确实是使用原子,例如'133'而不是123。不要使用字符串,例如"123",因为双引号的实际含义取决于double_quotes标准Prolog标志,它唯一的可移植值是codes(即"123"被解析为[49,50,51] )。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53846697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档