3

我刚刚与一位开发人员讨论了在 C# 中命名类的问题。我最后放弃的一句话是,“我们不要在我们的班级名称中添加任何表情符号。”

我想不出一种可以将表情符号放在 C# 类名称中的方法,但我并没有想太多。这可能吗?

任何编程语言都允许吗?能够执行此操作的最佳/最差语言是什么?

更新: Scheme answer bests 回答了我的问题。经过快速讨论后,这是一个快速的想法,所以我会在短时间内接受,然后继续我的生活。感谢您的回复。

4

9 回答 9

10

许多日式表情符号——O_o、v_v 等——在大多数语言中都是完全合法的标识符名称子串。

于 2009-09-17T09:12:23.493 回答
7

例如,在 Scheme 中,您可以灵活地在名称中包含:, -, /... 等符号,

(define (:-D x)
  (+ x 1))
...

(:-D 9)
output: 10
于 2009-09-17T09:08:48.737 回答
6

C# 支持任何 Unicode 字母作为标识符,所以如果你在 Unicode 表中找到一些适合表情符号的,你可以使用它们。CLR 本身允许在标识符名称中使用更多字符,例如在编译器生成的名称中使用的典型反引号,因此通过在 MSIL 中定义非常奇怪的名称,然后在 C# 中使用反射加载类,因为它不支持,您可能会非常疯狂那些角色...

方法名称oO浮现在脑海中。它本身就是一个表情符号(小眼睛和大眼睛),但是当被引用时,它会扩展为一个思想泡泡:.oO(Hello).

于 2009-09-17T09:26:11.217 回答
4

有点题外话:前几天我在处理文件名,意识到我的代码中出现了各种各样的面孔:

string number(fn.begin()+fn.rfind('_')+1,fn.begin()+fn.rfind('.'));    

当然,在 C++ 代码行的末尾,你几乎总是会看到从右到左的表情符号:

mesh->Delete();

为什么 C++ 看起来如此悲伤?

于 2009-09-17T11:04:49.613 回答
3

在 C++ 中,如果您命名一个类/结构_(这是一个糟糕的决定,但我们开始了),您可以像这样从中派生:

struct emoticon_to_the_right_of_this :_{
};

考虑到这一点,一个类o可能同样好:

struct another_emoticon_to_the_right_of_this :o{
};

嗯。我似乎只想出悲伤的。那个弗洛伊德家伙今天在这儿吗?我确实有问题要问他...

于 2009-09-17T09:12:18.573 回答
2

Perl::用作包名称分隔符,这意味着当我谈论XML::Parser(包含“:P”)或Data::Dumper(包含“:D”)时,IM 客户端可能会决定插入笑脸。不建议在包名称中使用标点符号以外::的标点符号,因此大多数“扩展”笑脸都不在图片中,但如果我想变得非常愚蠢,我可以引用一个名为的变量${ ':-)' }——但它总是必须使用${'...'}语法来引用因为它不是可识别的标识符名称:)

于 2009-09-29T08:55:50.203 回答
2

2014 年的这个时刻,苹果昨天刚刚发布了 Swift。我为此做了一个简短的例子。它编译并运行得非常好。:D

迅速

于 2014-06-03T02:43:14.157 回答
0

我相信我已经看到=>用于访问对象属性的语言(例如person=>father

它实际上不是名称的一部分,但它可能是一个表情符号。

于 2010-05-31T02:48:36.977 回答
0

不是严格意义上的类名,但 PHP 中不时会弹出一些类名,例如连接时单引号中的下划线:

$foo = $bar.'_'.$baz;

正如其他人指出的那样,您甚至不需要其中一些特殊符号:

class o_0 {}
class v_v {}
class T_T {}

更复杂的事情:

function d() { echo 'Thumbs up!!'; }

d('_');
于 2011-05-03T13:03:23.947 回答