由于我一直在努力完成“与Ada 95的交会”,我遇到了一个看似普通的Ada83 / Ada95不兼容问题:行中可怕的ambiguous character literal
错误:
Put ( Disk < Screen and 'P' < 'B' );
我是Ada的新手,但不是强类型语言,我理解这个问题:没有办法确定文字的类型是Character
还是Wide_Character
,而且模糊性导致编译时错误。
我的问题是,如何更改上述语句以指定具有给定类型的字符文字(例如。为Character
或Wide_Character
)?我已经阅读过类似的问题(What caused this Ada compilation error "ambiguous character literal"?),除了RTFM之外,他们没有提供任何指导。其他引用(https://gcc.gnu.org/onlinedocs/gnat_rm/Legal-Ada-83-programs-that-are-illegal-in-Ada-95.html)显示字符范围的变通方法,但不显示单个文字的变通方法。
在另一种语言中,我希望将文字转换为给定的类型,但我对Ada的印象是,不鼓励围绕类型检查(应该?)。我知道我可以明确地将文字定义为给定类型的常量,但这似乎无法在代码体中允许文字。
我认为这在Ada83代码现代化时是一个非常普遍的问题;内联模糊字符文字的最佳做法是什么?
答案 0 :(得分:4)
使用qualified expression明确标识类型:
.delivered {
background: url("../images/icons/ic_done_all_white_48dp_2x.png") no-repeat;
}