从KeySym值中获取字符串值

问题描述 投票:0回答:1

是否有办法从KeySym值中获取字符串值?例如,在keyPrintable("a")中。

rascal
1个回答
1
投票

如果您知道KeySym值为keyPrintable,则只需使用key属性即可获取它。例如

KeySym kv = ... // something that yields a KeySym
str s = kv.key;

如果您不知道它是keyPrintable,则可以检查它是否使用该构造函数构建,也可以使用模式匹配。因此,要么

if (kv is keyPrintable) {
  // code that uses kv.key to get back the value
}

if (keyPrintable(str s) := kv) {
  // code that can now use s, which is the key
}

您也可以询问kv是否具有该字段,然后使用它:

if (kv has key) {
  // code that uses kv.key
}

一旦在构造函数中引入了字段名称,并且它具有特定的类型,就会知道在相同数据类型的任何其他构造函数中,相同的字段名称具有相同的类型。因此,一旦我们知道字段key是类型str,则字段key必须是str,且类型为KeySym。这就是为什么可以很好地查看kv是否具有字段key,然后将其视为str的原因,以后没有人再来为KeySym添加新的构造函数,其中key具有不同的类型。] >

© www.soinside.com 2019 - 2024. All rights reserved.