精华内容
下载资源
问答
  • 不喜欢,就转换驼峰命名驼峰命名

    变量名或函数名是由一个或多个单词连结在一起时,为了增加程序的可读性,产生了命名规则

    1.驼峰命名法 (CamelCase)

    第一个单词小/大写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母;例如:myFirstNameOnlineUsers,这样的变量名看上去就像驼峰一样~此起彼伏。

    但是有个特殊的情况,如果是专有名词,整个单词都是大写的。如:validHTTPRequest

    2.下划线命名法(under_score _case)

    简单粗暴,就是利用下滑线来分割单词。如:my_first_nameonline_usersvalid_http_request

    3.驼峰 转换 下划线

    我们可以发现, 驼峰中出现大写字母,有2种可能。

    单词的首字母专有名词的其他字母

    也就是说,在驼峰命名法中,遇到大写字母,如果是一个新单词的开始,就变为小写字母的同时,前面加上‘_’;如果是专有名词的其他字母,变为小写字母就可以了。

    当大写字母是一个新单词的开始时,如果是普通单词的首字母,那第二个字母一定是小写的;如果是专有名词,那前一个字母一定是小写的。既:

    if (是大写字母) {
    	if (前面是小写字母 | 后面是小写字母) {
    		新单词的开始
    	}
    }
    

    4. 代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define N 50 // 暂定输入字符串 最大字符数量是50个
    #define Isupper(a)  ((a >= 'A' && a <= 'Z') ? 1 : 0) // 是否大写
    #define Islower(a)  ((a >= 'a' && a <= 'z') ? 1 : 0) // 是否小写
    #define COLOR(a, b) "\033[" #b "m" a "\033[0m"
    #define RED(a)      COLOR(a, 31)
    #define GREEN(a)    COLOR(a, 32)
    
    int main() {
        printf("Please input the string:\n");
        char src[N] = {0};
        scanf("%s", src);
        char *dest = (char *)calloc(strlen(src) * 2, sizeof(char));
    
        int p = 0, q = 0;
        while (src[p]) {
            if (Isupper(src[p])) {
                if (p && (Islower(src[p-1]) || Islower(src[p+1]))) {
                    dest[q++] = '_';
                }
                dest[q++] = src[p++] - 'A' + 'a';
            }else {
                dest[q++] = src[p++];
            }
        }
    
        printf(RED("驼峰 :%s\n"), src);
        printf(GREEN("下划线:%s\n"), dest);
        free(dest);
        return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 好的代码格式,你需要知道这些。自己写的代码。。。代码乱?不想再看? 一些命名规则: 例如在java中,对于C++也适用。

    好的代码格式,你需要知道这些。自己写的代码。。。代码乱?不想再看?

    一些命名规则:

    例如在java中,对于C++也适用。

    1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作为包名。比如www.sohu.com对于包名:每个字母都需要小写。比如:com.sohu.test;该包下的Test类的全名是:com.sohu.Test.java。

    如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(defaultpackage)。

    2:类:首字母大写,如果一个类由多个单词构成,那么每个单词的首字母都大写,而且中间不使用任何的连接符。尽量使用英文。如ConnectionFactory

    3:方法:首单词全部小写,如果一个方法由多个单词构成,那么从第二个单词开始首字母大写,不使用连接符。addPerson

    4:属性:与方法相同。如ageOfPerson

    5:常量:所有单词的字母都是大写,如果有多个单词,那么使用下划线链接即可。如:public static final int AGE_OF_PERSON = 20,通常加上static 

    对于C,自己接触较多,这下面是我常用的命名规则,仿着STM32库总结。

    函数命名格式,一般驼峰法:
    
    首字母大写+小写_首字母大写+小写
    void Hard_Handler(void)
    
    单个单词不可表述时:
    
    首字母大写+小写+首字母大写+小写_首字母大写+小写
    void HardFault_Handler(void);
    
    如果是一些特有的标识:“照样写”,例如:SVC、PendSV等
    
    void SVC_Handler(void);
    
    void PendSV_Handler(void);
    
    void USART1_IRQHandler(void);
    
    文件命名格式,全部小写:
    
    gpio.c
    gpio.h
    
    工程文件命名格式:
    
    芯片型号_某公司_实现功能
    
    STM32L431RC_xxx_LCD
    
    枚举:
    typedef enum
    {
      HAL_OK       = 0x00,
      HAL_ERROR    = 0x01,
      HAL_BUSY     = 0x02,
      HAL_TIMEOUT  = 0x03
    } HAL_StatusTypeDef;
    结构体:
    
    typedef struct __I2C_HandleTypeDef
    {
      I2C_TypeDef                *Instance;      /*!< I2C registers base address                */
    
      I2C_InitTypeDef            Init;           /*!< I2C communication parameters              */
    
      uint8_t                    *pBuffPtr;      /*!< Pointer to I2C transfer buffer            */
    
      uint16_t                   XferSize;       /*!< I2C transfer size                         */
    
    } I2C_HandleTypeDef;
    
    typedef struct __I2C_HandleTypeDef与I2C_HandleTypeDef
    

     

    展开全文
  • 编写重写了 WebMvcConfigurationSupport 的配置类: import com.fasterxml.jackson.annotation.JsonInclude;... import org.springframework.... } } 以上两种方式都可以实现统一将返回的json数据格式由驼峰命名转下划线。

    编写重写了 WebMvcConfigurationSupport 的配置类:

    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.PropertyNamingStrategy;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    import java.util.List;
    import java.util.TimeZone;
    
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurationSupport {
    
        @Override
        protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            for (int i = 0; i < converters.size(); i++) {
                if (converters.get(i) instanceof MappingJackson2HttpMessageConverter) {
                    ObjectMapper objectMapper = new ObjectMapper();
    
                    // 统一返回数据的输出风格
                    objectMapper.setPropertyNamingStrategy(new PropertyNamingStrategy.SnakeCaseStrategy());
                    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
                    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                    objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
                    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
                    converter.setObjectMapper(objectMapper);
                    converters.set(i, converter);
                    break;
                }
            }
        }
    }
    

    另一种方式:重新注入 Jackson2ObjectMapperBuilderCustomizer

    package com.liby.visual.model.config;
    
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.PropertyNamingStrategy;
    import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
    
    @Configuration
    public class AdditionalConfig {
    
        @Bean
        public Jackson2ObjectMapperBuilderCustomizer customJackson() {
            return new Jackson2ObjectMapperBuilderCustomizer() {
    
                @Override
                public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
                    jacksonObjectMapperBuilder.serializationInclusion(JsonInclude.Include.NON_NULL);
                    jacksonObjectMapperBuilder.failOnUnknownProperties(false);
                    jacksonObjectMapperBuilder.propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
                }
    
            };
        }
    
    }
    

    以上两种方式都可以实现统一将返回的json数据格式由驼峰命名转下划线。

    展开全文
  • C++类、结构体、函数、变量等命名规则详解

    万次阅读 多人点赞 2018-10-17 21:34:26
    编程越学越深,也慢慢了解到命名规范的重要性,在前面几个数据结构的示例中,大家也看到,命名也是有一定的规则的,这会方便...1、驼峰命名法 2、帕斯卡(Pascal)命名法 3、匈牙利命名法 4、下划线命名法 三...

    编程越学越深,也慢慢了解到命名规范的重要性,在前面几个数据结构的示例中,大家也看到,命名也是有一定的规则的,这会方便我们阅读代码,方便我们后期完善。今天就给大家总结一下常用的C++命名规则。希望对大家有所帮助。

    目录

    一、命名规范原则

    1、必循遵守的规则

    2、尽量做到的规则

    二、常用命名法

    1、驼峰命名法

    2、帕斯卡(Pascal)命名法

    3、匈牙利命名法

    4、下划线命名法

    三、不同类型常用命名规则

    1、类与对象

    2、函数

    3、变量

    4、常量、宏定义和枚举


    一、命名规范原则

    1、必循遵守的规则

    首先是总体的命名规范原则,是我们命名时必须要遵守的,不然程序会出现错误。

    1、变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。

    2、第一个字母不能是数字,例如 2L 这不是一个合法的C++变量。

    3、不能是c++关键字,例如不能用 class 、 int 这些单词来命名一个变量。

    常用C++关键字如下,不必死记硬背,多些代码,慢慢就熟练了。

    asm

    do

    if

    return

    typedef

    auto

    double

    inline

    short

    typeid

    bool

    dynamic_cast

    int

    signed

    typename

    break

    else

    long

    sizeof

    union

    case

    enum

    mutable

    static

    unsigned

    catch

    explicit

    namespace

    static_cast

    using

    char

    export

    new

    struct

    virtual

    class

    extern

    operator

    switch

    void

    const

    false

    private

    template

    volatile

    const_cast

    float

    protected

    this

    wchar_t

    continue

    for

    public

    throw

    while

    default

    friend

    register

    true

     

    delete

    goto

    reinterpret_cast

    try

    有些是我们不常见的,如果不确定是不是,第一种方式是命名的时候,看一下,以VS2015为例,如果我们定义这个变量有特殊颜色,比如蓝色

    说明这是关键字,当然像我们自己定义的有时候也会变色,具体的就看编译器怎么设置的了。第二种方式就是先命名,如果报错,说明这个命名是用了关键字。

    第三种就是尽量避免不确定的,实在不行用大写,C++目前的关键字均为小写。

    4、区分大小写,例如iA和ia是两个不同的变量。

    2、尽量做到的规则

    不遵守不会错,但是命名不是很规范。所以这块没有标准,只是我自己看的很多代码,很多书上讲的,然后自己总结。

    1、尽量用英文,不用拼音

    2、尽量用少的单词表达多的意思。虽然长度没有硬性要求,但是如果一个变量十多个字母还是不好看。有的书上说20字母以内,有个书上说尽量不超过30个字母,个人建议,控制在15个以内,如果英语不太好,大家可以通过变量命名多接触英语单词,如果英语水平较高,建议控制在10个以内。

    3、有含义的变量或者多处调用的变量,尽量用有含义的单词命名,不要用i,j,k这些单个字母命名。要不然别人看你的代码,很难理解变量含义,还容易出错。

    4、定义变量时,可以加上类型前缀。比如链表变量前面加上L,类前面加上C。

    LinkList LL ;//第一个L的含义是链表,作为前缀,第二个L的含义是变量名称
    class CPerson ;//第一个C的含义是类,作为前缀,后面Person的含义是变量名称

     5、同一个程序中,相同类型用同一种命名方法。例如变量用驼峰命名法,那所有的变量都用驼峰命名,类名都要求首字母大写,那所有的类名首字母都大写。

    二、常用命名法

    1、驼峰命名法

    指混合使用大小写字母来构成变量和函数的名字。当变量名或函数名是由一个或多个单词连结在一起构成的唯一识别字时第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母例如:myName、myAge,这样的变量名看上去就像骆驼峰一样此起彼伏,因此被称为驼峰命名法。

    int *treeBase;
    int elemNum;
    int treeSize;

    2、帕斯卡(Pascal)命名法

    也叫大驼峰法,与驼峰命名法类似,不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写。

    int *TreeBase;
    int ElemNum;
    int TreeSize;

    3、匈牙利命名法

    匈牙利命名法是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼(Charles Simonyi) 提出的。它通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等这些符号可以多个同时使用,基本原则是:变量名=属性+类型+对象描述

    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

    int *iTreeBase;
    int iElemNum;
    int iTreeSize;

    4、下划线命名法

    与驼峰命名法相似,通过一种方式将不同单词区分开,方便读懂变量含义。与驼峰命名法不同的是,驼峰命名法采用的是首字母大写区分,下划线命名法是在不同单词之间添加下划线。

    int *tree_base;
    int elem_num;
    int tree_size;

    三、不同类型常用命名规则

    对于C++固有类型,如类,函数,他们有各自的命名规则,当然不同公司有不同公司的命名要求,在这里说一下大多数要求,大家作为了解。

    1、类与对象

    类的名称一般以大写字母“C”开头,表明定义的是类,后跟一个或多个单词。为便于界定,每个单词的首字母要大写。类的命名推荐用"名词"或"形容词+名词"的形式。

    class CPerson;
    
    class CLittleCat;
    

    2、函数

    函数的名称由一个或多个单词组成。为便于界定,建议采用帕斯卡(Pascal)命名法,即每个单词的首字母要大写。

    int InitQueue(LinkQueue &LQ) ;
    
    int EnQueue(LinkQueue &LQ, int e);
    
    int DeQueue(LinkQueue &LQ, int &e);

    3、变量

    变量一般采用驼峰命名法,个人也比较喜欢驼峰命名法。

    4、常量、宏定义和枚举

    常量、宏定义和枚举一般都是所有字母大写,特别是宏定义,在不同字母之间,可以加上下划线,也可以不加。

    #define List_INIT_SIZE 100 
    #define LISTINCREMENT 10  
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define OVERFLOW -1
    
    int LENGTH  = 10;
    int LIST_MAX_SIZE = 50;
    

     

    展开全文
  • 1、命名约定 1.1 通用命名规则 函数命名,变量命名,文件命名要有描述性,少用缩写。...驼峰命名法 首字母小写,函数名中的每个逻辑断点都用大写字母来标记示例:myData 2 帕斯卡(Pascal)命名法 与...
  • golang默认的结构体json转码出来,都是根据字段名生成的大写驼峰格式,但是一般我们最常用的json格式是小写驼峰或者小写下划线,因此,我们非常需要一个统一的方法去转换,而不想挨个写json标签,例如 package main...
  • 目前,业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。 驼峰命令法(Camel):  也称骆驼式命名法正如它的名称所表示的那样,是指混合使用大小写...
  • 二,命名规范 rust中变量标识符和函数标识符官方要求就是小写加下划线拼接的方式,常量尽量遵循全大写加下划线拼接的方式。 //格式为 变量声明 变量名: 数据类型 = 不可变变量的值; const NUM:i32= 1;//常量 ...
  • Go中的命名规范

    2020-04-22 23:39:27
    1.命名规范# 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该...
  • C语言学生成绩管理系统

    万次阅读 多人点赞 2019-11-07 14:49:58
    #include #include #include #include #pragma warning(disable : 4996)//关闭编译器报错 struct score//为了清晰地区分成绩和学生信息,定义score结构体 { char ch[5], en[5], ma[5], se[5], pe[5];//语文,英语...
  • C语言结构体

    2015-03-02 14:46:00
    作用: 创建一个新的数据类型, 可以卸载函数的内部或外部 结构: ... //struct 结构体名字{ // 数据类型1 成员变量名1; // 数据类型2 成员变量名2; // ... // ... // 数据类型n 成员变量n; //}; ...
  • Google命名规范

    2020-01-10 10:01:19
    Google 命名规范 Python 命名方法 Type Public Internal Modules lower_with_under _lower_with_under Packages lower_with_under Classes CapWords _CapWords Exceptions...
  • golang命名规范

    万次阅读 2018-08-23 09:35:55
    golang的变量函数命名需要使用驼峰命名法,且不能出现下划线, 文件名使用下划线 golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包...
  • 结构体字段tag

    2021-08-08 15:00:18
    Tag是结构体中某个字段别名,可以定义多个,空格分隔 type Student struct { Name string `ak:"av" bk:"bv" ck:"cv"` } Tag的作用 Tag相当于该字段的一个属性标签,Go语言中,一些包会通过tag来做相应判断 // ...
  • 一些函数、变量命名法及代码规范

    千次阅读 2020-01-09 09:23:08
    驼峰命名法 骆驼式命名法(Camel-Case)又称驼峰式命名法,也称小驼峰式命名法。骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起时,第一个单词以小写字母开始;从第二个单...
  • go语言map转结构体

    千次阅读 2020-08-21 15:33:37
    方式一、通过mapstructure.Decode()方法 可以通过mapstructure.Decode(map[string]interface,*struct)方法将map转换成结构体,如: type student struct{ }
  • 所有类型命名 —— 类, 结构体, 类型定义 (typedef), 枚举, 类型模板参数 —— 均使用相同约定, 即以大写字母开始, 每个单词首字母均大写, 不包含下划线。 例如: 五、变量命名 1.总述 变量 (包括函数参数) 和数据...
  • 命名规范

    千次阅读 2017-05-23 18:08:08
    命名规范命名不规范是代码可读性、可维护性、可理解性差的罪恶之源。遵守大家都习惯的命名规范能够大大提高可读性,而且你也不用在命名上浪费时间了。变量命名前缀 bool布尔: b byte字节:by char字符:ch string...
  • 最近复习408数据结构,看书的时候发现函数命名各式各样,网上的也没有一个统一的说法,就自己去找了一个,仅此记录。 Google开源项目指南 命名约定 最重要的一致性规则是命名管理. 命名的风格能让我们在不需要去查找...
  • C++命名规则&书写规范

    千次阅读 2021-05-12 09:49:44
    Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线\color{blue}{混合使用大小写字母和单词之间加下划线}混
  • 和其他语言一样,在Go中,命名非常重要,甚至还有语义效果:一个名称在包外是否可见,取决于它的首字母是否大写。在导入一个包后,你只能引用其中已导出的名字。任何“未导出”的名字在该包外均无法访问。 一 包名 ...
  • 7. 命名约定 最重要的一致性规则是命名管理. 命名的风格能让我们在不需要去查找类型声明的条件下快速地了解某个名字代表的含义: 类型, 变量, 函数, 常量, 宏, 等等, 甚至. 我们大脑中的模式匹配引擎非常依赖这些...
  • 程序编码的命名方式

    2020-12-24 16:57:55
    骆峰式命名法(Camel-Case)分为2种,小驼峰法和大驼峰法。 (1)小驼峰法:变量名的第一个单词的首字母小写,其余单词的首字母大写 变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母...
  • 编程规范(一):C/C++的命名原则

    千次阅读 2018-10-07 12:02:51
    符合规范的统一命名是程序编写的基本规矩之一。很多时候我们不愿意接手别人的代码,原因之一就是代码命名很乱;我们自己写代码时经常写到后面忘了前面,也有可能是我们没有养成规范的命名习惯。当写代码成为一种艺术...
  • swift类和结构体(一)

    千次阅读 2017-03-08 18:06:37
    定义类和结构体的命名,都要用首字母为大写的驼峰命名法。相反,命名属性和方法要要用矮驼峰来和类型进行区分。 类和结构体的实例 类和结构体的实例比较简单,只需要在类名后边加上一对括号即可。实例的...
  • 涉及“驼峰命名法”、“下划线命名法”、“帕斯卡命名法”、“匈牙利命名法”的介绍和见解。属于C语言基础篇(持续更新) 刚刚开始学习编程的时候,我的第一个老师便强调过,命名要规范,需要做到见名知意,...
  • C++常用命名法与书写规范

    万次阅读 2018-06-27 18:27:55
    驼峰命名法、匈牙利命名法、帕斯卡命名法。 这三种命名方法各有千秋,以庄子的齐物论来说就是“道无终始,物有死生,不恃其成”。我们要“吸百家之长,圆我代 码功夫”,废话说了几行了,综合出来的代码规范如下...
  • 目录 命名 文件命名 package 变量 常量 接口 结构体 方法 注释 README 命名 文件命名 文件命名一律采用小写,不用驼峰式,尽量见名思义,...
  • golang结构体标签 介绍 (Introduction) Structures, or structs, are used to collect multiple pieces of information together in one unit. These collections of information are used to describe higher-level...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,077
精华内容 830
关键字:

驼峰命名结构体