我刚与开发人员就C#中的命名类进行了讨论。我的最后一次抛弃线是,“我们不要在我们的班级名字中添加任何表情符号。”
我想不出一种可以将表情符号放在C#类名中的方法,但我并没有想太多。这可能吗?
是否有任何编程语言允许它?能够执行此操作的最佳/最差语言是什么?
更新:计划答案最终回答了我的问题。经过快速讨论后,这是一个快速的想法,所以我会在很短的时间后接受,然后继续我的生活。感谢您的回复。
答案 0 :(得分:10)
许多日式表情符号--O_o,v_v等 - 在大多数语言中都是标识符名称的完美合法子串。
答案 1 :(得分:7)
例如,在Scheme中,您可以灵活地在名称中包含:
,-
,/
...等符号,
(define (:-D x)
(+ x 1))
...
(:-D 9)
output: 10
答案 2 :(得分:6)
C#支持任何用于标识符的Unicode字母,因此如果您在Unicode表中找到适合表情符号的字母,则可以使用它们。 CLR本身允许在标识符名称中使用更多字符,比如编译器生成的名称中使用的典型反引号,因此您可以通过在MSIL中定义真正奇怪的名称,然后在C#中使用反射加载类来实现它,因为它不支持那些人物......
我想到了方法名称oO
。它本身就是一个表情符号(小眼睛和大眼睛),但是当它被引用时,它会扩展到一个思想泡泡:.oO(Hello)
。
答案 3 :(得分:4)
稍微偏离主题:前几天我正在处理文件名,并意识到我的代码中出现了各种各样的面孔:
string number(fn.begin()+fn.rfind('_')+1,fn.begin()+fn.rfind('.'));
当然,从右到左的表情符号,你几乎总是得到C ++代码行的结尾:
mesh->Delete();
为什么C ++看起来很难过?
答案 4 :(得分:3)
在C ++中,如果你命名一个类/结构_
(一个糟糕的决定,但是我们去了),你可以从中得到它:
struct emoticon_to_the_right_of_this :_{
};
考虑到这一点,课程o
可能同样出色:
struct another_emoticon_to_the_right_of_this :o{
};
嗯。我似乎只想出悲伤的。 今天弗洛伊德的家伙在这附近吗?我有一个问题要问他......
答案 5 :(得分:2)
Perl使用::
作为包名称分隔符,这意味着当我谈论XML::Parser
(包含“:P”)或Data::Dumper
时,IM客户端可能会决定插入笑脸(包含“:D”)。不建议在包名称中使用除::
以外的标点符号,因此大多数“扩展”表情符号都不在图片中,但如果我想要非常愚蠢,我可以引用名为${ ':-)' }
的变量 - 但是它总是必须使用${'...'}
语法引用,因为它不是可识别的标识符名称:)
答案 6 :(得分:2)
在2014年的这个时刻,Apple昨天刚刚发布了Swift。我为此做了一个简短的例子。它编译并运行完美。 :d
答案 7 :(得分:0)
我相信我见过使用=>
访问对象属性的语言(类似person=>father
)
它实际上并不是名称的一部分,但它可能是一个表情符号。
答案 8 :(得分:0)
不是严格的类名,但有时会在PHP中弹出一些,比如连接时单引号中的下划线:
$foo = $bar.'_'.$baz;
正如其他人指出的那样,你甚至不需要为其中一些人特别需要特殊的符号:
class o_0 {}
class v_v {}
class T_T {}
更复杂的事情:
function d() { echo 'Thumbs up!!'; }
d('_');