Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Gu-ZT/CodeStyle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

Gugle的代码风格指南

  • 版本: 0.0.2
  • 创建日期: 2023年10月07日
  • 最后修改: 2023年10月08日

通用

  • 缩进:

    • 缩进应使用 空格 而非 制表符
    • 除非一些特殊需求,否则一般使用 4空格 作为缩进
  • 标识符:

    • 除循环变量,或者表示坐标的 xyz 等特殊情况,标识符禁止使用单个字母
  • 操作符

    • 三元操作符、二元操作符通常情况下前后需要有空格,如:
      • result = num1 + num2
      • if(num1 > num2) return;
      • result = num1 > num2 ? num1 : num2
    • 一元操作符通常情况下前后不需要有空格,如:
      • result = num1++
  • 括号:

    • 对于使用括号分割代码块的语言,我们通常有以下要求:
    • 圆括号 () 与其它代码块之间通常情况下不存在空格
    • 花括号 {} 与其它代码块之间通常情况下存在 1 个空格
    • 方括号 [] 与其它代码块之间通常情况下不存在空格
    • 如:
      function outNums(nums:number[]):void {
       for(num in nums) {
       if(num > 10) {
       console.log(num);
       } else {
       console.log(num * 2);
       }
       }
      }
  • 代码行

    • 在代码行的结尾不应该有任何 空格 或者 制表符 , 即使是空行
    • 一行代码最好不要超过 120 个半角字符的长度
  • 嵌套

    • 一般情况下,我们不建议嵌套(如循环,判断等)超过 4 层,如:
      function exampleFunc(user:User, data:PlayerData):void {
       if(user.isAdmin()) {
       if(user.isAlive()) {
       let info:string = "";
       for(item in data.items) {
       if(!item.isEmpty()) {
       info = info + item.name + "\n";
       }
       }
       user.send(info);
       }
       }
      }
    • 我们可以通过提前返回,函数提取等手段减少代码的嵌套层级,如上面的代码可以修改为:
      function exampleFunc(user:User, data:PlayerData):void {
       if(!user.isAdmin()) return;
       if(!user.isAlive()) return;
       user.send(outItemsName(data.items));
      }
      function outItemsName(items:Item[]):string {
       let info:string = "";
       for(item in data.items) {
       if(item.isEmpty()) continue;
       info = info + item.name + "\n";
       }
       return info;
      }

Java

  • 命名
    • 文件名通常情况下应使用大驼峰命名法,即所有单词首字母大写,如:
      • User
      • PlayerData
    • 类名通常情况下应使用大驼峰命名法
    • 字段通常情况下应使用小驼峰命名法,即第一个单词首字母小写,后续单词首字母大写,如:
      • address
      • phoneNumber
      • 特殊的,被 static final 修饰的字段应使用全大写,以下划线分割的方式命名,如 GAME_MODE_CREATIVE ,枚举类的对象应视为被 static final 修饰
    • 方法通常情况下应使用使用小驼峰命名法

C/C++

  • 命名
    • 文件名通常情况下应使用大驼峰命名法
    • 类名、结构体名、 typedef 重新定义的类型通常情况下应使用大驼峰命名法
    • 变量、全局变量通常情况下应使用小驼峰命名法
    • 函数通常情况下应使用使用大驼峰命名法
    • 宏常量应使用全大写,以下划线分割的方式命名

C#

  • 命名
    • 文件名通常情况下应使用大驼峰命名法
    • 类名通常情况下应使用大驼峰命名法
    • 字段通常情况下应使用小驼峰命名法
      • 特殊的,被 static readonly 修饰的字段应使用全大写,以下划线分割的方式命名,枚举类的对象应视为被 static readonly 修饰
    • 方法通常情况下应使用使用大驼峰命名法

Python

  • 命名
    • 文件名通常情况下应使用蛇形命名法
    • 类名通常情况下应使用大驼峰命名法
    • 变量、全局变量通常情况下应使用蛇形命名法,即所有单词全小写,以下划线分割,如:
      • address
      • phone_number
      • 表示常量的不希望被修改的变量应使用全大写,以下划线分割的方式命名
    • 函数、方法通常情况下应使用使用蛇形命名法

About

Code Style Guide for Gugle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /