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