标签: camelcasing

骆驼案的方法名称

我理解驼峰案例变量名称的原因,但我一直想知道为什么你会骆驼案例一个方法名称?为什么是toString()而不是ToString()?它有什么用途?

camelcasing naming-conventions

9
推荐指数
3
解决办法
2万
查看次数

camelCase中的单字母单词,处理这些单词的标准是什么?

我试图将一个对象的顶点X组件组合在一个向量中,就像数组样式的结构一样.

当然这就是方法.

Vec xComponents; or Vec xVals; or simply Vec x;
Run Code Online (Sandbox Code Playgroud)

但是有时我想在id中指定x组件属于哪个,我想这样做.

Vec objXComponents;
Run Code Online (Sandbox Code Playgroud)

然而,彼此相邻的两个首都似乎打破了关于骆驼案的规则,并且可能使其略微不那么可读.

我该怎么办?我知道你可能会说只是剔除修复后使用的组件objX,虽然我认为对于这种情况没问题,我想要一个通用的解决方案/标准.

我试图找出微软是否有这个标准,但我不能在他们的风格指南上找到它.

c# camelcasing coding-style

9
推荐指数
1
解决办法
2052
查看次数

在 C# 中序列化为 XML 时将属性更改为驼峰式大小写

我有多个 DTO 类,它们从 XML 序列化(反)序列化到 XML。我想对属性使用 PascalCase 的 C# 约定,但我希望它们在 XML 中显示为驼峰式。

例子:

[XmlElement("config")]
public ConfigType Config { get; set; }
Run Code Online (Sandbox Code Playgroud)

这里的属性是,Config但出现config在 XML 中。

我觉得[XmlAttribute]为每个属性使用 a很浪费,因为它们总是与属性名称相同,只有第一个字母不大写。此外,如果我将来更改属性名称,我必须记住更改该名称,[XmlAttribute]否则它们将变得不同步。

是否有可能有一个类范围的属性,表示“即使属性是 pascal 大小写,也对属性使用驼峰大小写”,或者更好的是 XmlSerializer 的设置?

c# xml camelcasing

9
推荐指数
2
解决办法
2035
查看次数

什么时候应该在PHP命名中使用camelCase/Camel Case或下划线?

我一直在学习PHP,看到人们如何命名的东西有很多变化.我渴望至少与自己保持一致.

我应该在哪里使用Camel Case以及我应该在哪里使用下划线?

思考:

  • 变量/属性:$userid$user_id$userID

  • 课程:MyCustomClassmyCustomClass

  • 功能/方法:my_custom_function()my_Custom_Function()

任何想法都赞赏.

php naming camelcasing naming-conventions

9
推荐指数
2
解决办法
6712
查看次数

在跳过缩写时,将camel case格式化为可在PHP中读取

所以我被困 - 我在这里看了很多答案,但似乎没有解决我的最后一个问题.

通过带有JSON的API,我收到了一个camelcase格式的设备列表.我无法改变这一点.

我需要将这个camelcase翻译成普通语言 -

到目前为止,我已经将大部分词语分开了:

$string = "SomeEquipmentHere";

$spaced = preg_replace('/([A-Z])/', ' $1', $string);
var_dump($spaced);

string ' Some Equipment Here' (length=20)

$trimmed = trim($spaced);
var_dump($trimmed);
string 'Some Equipment Here' (length=19)
Run Code Online (Sandbox Code Playgroud)

哪个工作正常 - 但在一些设备中由缩写组成

"ABSBrakes" - 这需要ABS并与制动器分开

我无法检查彼此相邻的几个大箱,因为它会将ABS和制动器保持在一起 - 还有更多这样的,即:"CDRadio"

所以需要的是输出:

"ABS Brakes"
Run Code Online (Sandbox Code Playgroud)

有没有办法对它进行格式化,如果彼此旁边有大写字母,那么只在该序列的最后一个大写字母前添加一个空格?

我在正则表达式方面不强.

编辑

这两个贡献都很棒 - 以后来这里的人应该读两个答案

最后的问题包括以下模式:

"ServiceOK"成为"Service O K"

"ESP"变成"ES P"

仅由纯大写字母缩写组成的模式由计数小写字母的函数修复,如果没有,则将跳过preg_replace().

但正如Flying在他的回答评论中写道的那样,他的正则表达式可能会有很多实例未被覆盖,并且答案可能是不可能的 - 我不知道这对正则表达式是否是一个挑战.

可能通过添加一些"如果大写后没有小写,则不应该插入空格"规则

php regex camelcasing

9
推荐指数
1
解决办法
126
查看次数

将文本格式化为Pascal或驼峰套管的算法

使用这个问题作为基础是有一个alogrithm或编码示例将一些文本更改为Pascal或Camel大小写.

例如:

mynameisfred
Run Code Online (Sandbox Code Playgroud)

Camel: myNameIsFred
Pascal: MyNameIsFred
Run Code Online (Sandbox Code Playgroud)

algorithm camelcasing pascalcasing coding-style

8
推荐指数
1
解决办法
3274
查看次数

使用ispell/aspell拼写检查camelcased单词

我需要拼写检查包含许多camelcased单词的大文档.我想要ispell或aspell来检查单个单词是否拼写正确.

所以,如果这个词:

ScientificProgrezGoesBoink

我很乐意建议这样做:

ScientificProgressGoesBoink

有没有办法做到这一点?(我的意思是,在Emacs缓冲区上运行它.)请注意,我不一定要它建议完整的替代方案.但是,如果它知道Progrez不被识别,我希望能够至少替换那个部分,或者将这个词添加到我的私人词典中,而不是将每个骆驼词包括在词典中.

emacs camelcasing aspell ispell

8
推荐指数
1
解决办法
1900
查看次数

CamelCase打破了Json.NET版本4的变化

我刚刚将我们的Json.NET从版本3.5发行版7升级到4.0版本8,并意识到没有以相同的方式完成seralization.序列化包含标准Dictionary的对象时,3.5版本保持字典键不变,但使用4.0时,合同解析器也适用于键.

例如,使用以下JsonSerializerSettings时:

jsonSerializerSettings = new JsonSerializerSettings
{
    Converters = new List<JsonConverter> { new JavaScriptDateTimeConverter() },
    NullValueHandling = NullValueHandling.Ignore,
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
    ContractResolver = new CamelCasePropertyNamesContractResolver()
};
Run Code Online (Sandbox Code Playgroud)

并在序列化像这样的对象时:

[JsonObject(MemberSerialization.OptOut)]
public class ProductFilter
{
    public int Id { get; set; }
    public int NodeId { get; set; }
    public IDictionary<string, ProductFilterAttribute> Attributes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Attributes字典中的键也变成了camelCase.在版本3.5R7中保持不变的那些我觉得这是正确的方法.

3.5R7输出的示例片段:

{
    "id": 98659,
    "nodeId": 317970,
    "attributes": {
        "FULL_TIME_USE": {
            values: [ { "1" } ],
            formattedValue: "...
Run Code Online (Sandbox Code Playgroud)

4.0R8输出的示例代码段:

{
    "id": 98659,
    "nodeId": …
Run Code Online (Sandbox Code Playgroud)

.net c# json camelcasing json.net

8
推荐指数
1
解决办法
3891
查看次数

为Emacs中的CamelCase单词更改forward-word/backward-word/kill-word

我需要能够在Emacs中导航和编辑骆驼外壳单词的部分内容.功能类似于Intellij IDEA中的驼峰驼峰.例如,我需要将字符串BlahFooBar中的Blah,FooBar标识为3个单独的单词,以便我可以导航/编辑它们,就像它们是单独的单词一样.

我试过玩语法表

(modify-syntax-entry ?A ".")
(modify-syntax-entry ?F ".")
Run Code Online (Sandbox Code Playgroud)

这具有制作lah,ooar字以及字符B和F字分隔符的效果.因此导航向后(和反向杀死单词)不能按预期工作.

我需要的是基于正则表达式而不是分隔符的单词边界.

syntax emacs camelcasing intellij-idea

8
推荐指数
1
解决办法
835
查看次数

PHP正则表达式和相邻的捕获组

我第一次在正则表达式中使用捕获组,我想知道我的问题是什么,因为我假设正则表达式引擎从左到右查看字符串.

我正在尝试将UpperCamelCase字符串转换为hyphened-lowercase-string,例如:

HelloWorldThisIsATest => hello-world-this-is-a-test
Run Code Online (Sandbox Code Playgroud)

我的前提条件是字母字符串,所以我不需要担心数字或其他字符.这是我尝试过的:

mb_strtolower(preg_replace('/([A-Za-z])([A-Z])/', '$1-$2', "HelloWorldThisIsATest"));
Run Code Online (Sandbox Code Playgroud)

结果:

hello-world-this-is-atest
Run Code Online (Sandbox Code Playgroud)

这几乎是我想要的,除了a和之间应该有一个连字符test.我已经包含A-Z在我的第一个捕获组中,所以我会假设引擎看到AT并连接了那个.

我究竟做错了什么?

php regex string backreference camelcasing

8
推荐指数
2
解决办法
1083
查看次数