《C,C++,JS,Go,Python》对照表

警告:任何不适请立即停止阅读 -- 人生苦短,远离编程

  • 特点和擅长

    C C++ JS Go Python
    概述 通用程序设计语言 高级程序设计语言 轻量级编程语言 并发型编程语言 解释型脚本语言
    编译型语言 ✔️ ✔️ - ✔️ -
    运行速度快 ✔️ ✔️ - ✔️ -
    解释型语言 - - ✔️ - ✔️
    脚本语言 - - ✔️ - ✔️
    简单易学 - - ✔️ - ✔️
    丰富的库 - - - - ✔️
    面向对象 - ✔️ ES6支持 简洁的支持 ✔️
    科学计算和数据分析 - - - - ✔️
    机器学习和人工智能 - - - - ✔️
    Web开发 - - ✔️ ✔️ ✔️
    游戏后台 - ✔️ - ✔️ -
    微信小程序/小游戏/页游 - - ✔️ - -
    爬虫 - - - ✔️ ✔️
    自动化测试和小工具 - - - - ✔️
    嵌入式系统 ✔️ - - - -
    操作系统开发 ✔️ - - - -
    编译器和解释器 ✔️ - - - -
    数据库系统 ✔️ ✔️ - ✔️ -
    大型专业软件 - ✔️ - - -
    可移植性 ✔️ - ✔️ ✔️ ✔️
    区分大小写 ✔️ ✔️ ✔️ ✔️ ✔️
    最擅长 嵌入式系统 大型系统软件 web前端 后台开发 快速开发
  • 代码结构

    C C++ JS Go Python

ANSI C关键字32个,ISO C++98/03关键字共63个,JS保留/关键字60个,Python关键字35个,Go关键字25个(官方不统计类型相关)。本表不保证全部列出。

  • 定义 C C++ JS Go Python
    None - - - - 空值
    NULL 空指针宏 空指针宏 - - -
    null - - 空值 - -
    nil - - - 空值 -
    True - - - -
    true - -
    False - - - -
    false - -
  • 数据类型

    关键字 C C++ JS Go Python
    as - - - - 创建别名
    auto 自动变量 自动变量 - - -
    bool - 布尔型 - - -
    chan - - - 通道 -
    char 字符型 字符型 保留字 - -
    class - 定义类/模板 ES6定义类 - 定义类
    const 只读变量 只读变量 只读变量 只读变量 -
    double 双精度浮点型 双精度浮点型 保留字 - -
    enum 枚举 枚举 保留字 - -
    extern 外部定义 外部定义 - - -
    float 单精度浮点型 单精度浮点型 保留字 - -
    friend - 友元 - - -
    global - - - - 声明全局变量
    int 整型 整型 保留字 整型 -
    let - - 声明变量 - -
    long 长整型 长整型 保留字 - -
    map - - - 字典类型 -
    mutable - 突破const - - -
    new - 创建对象 创建对象 - -
    nonlocal - - - - 声明非局部变量
    private - 私有成员 - - -
    protected - 保护成员 - - -
    public - 公有成员 - - -
    register 寄存器变量 寄存器变量 保留字 - -
    short 短整型 短整型 保留字 - -
    signed 有符号型 有符号型 - - -
    static 静态 静态 保留字 - -
    struct 结构体 结构体 - 结构体 -
    type - - - 定义类型 -
    typedef 类型别名 类型别名 - - -
    typename - 声明模板参数 - - -
    union 共用体 共用体 - - -
    unsigned 无符号型 无符号型 - - -
    var - - 声明变量 声明变量 -
    void 空类型 空类型 空,特别用法 - -
    volatile 不稳定变量 不稳定变量 保留字 - -
    wchar_t - 宽字符 - - -
  • 流程控制

    关键字 C C++ JS Go Python
    asm 不是关键字,多数编译器支持 汇编 - - -
    assert - - - - 断言
    async - - - - 异步定义
    await - - - - 等待异步
    break 跳出 跳出 跳出 跳出 跳出
    case 分支 分支 分支 分支 -
    catch - try.catch异常处理 try.catch异常处理 - -
    continue 继续循环 继续循环 继续循环 继续循环 继续循环
    def - - - - 函数定义
    default 默认分支 默认分支 默认分支 默认分支 -
    defer - - - 延迟处理 -
    del - - - - 删除对象
    delete - 删除对象 删除属性 - -
    do do.while循环 do.while循环 do.while循环 - -
    elif - - - - 等同 else if
    else 否定分支 否定分支 否定分支 否定分支 否定分支
    except - - - - try.except异常处理
    explicit - 显示构造函数 - - -
    export - 导出模板 - - -
    fallthrough - - - 不跳出case -
    finally - - try.catch.finally无论是否异常都执行 - try.except.finally无论是否异常都执行
    for for循环 for循环 for循环 for循环 for循环
    from - - - - import.from导入模块特定部分
    func - - - 函数定义 -
    function - - 函数定义 - -
    go - - - 并发 -
    goto 无条件跳转 无条件跳转 保留字 无条件跳转 -
    if 判断 判断 判断 判断 判断
    import - - - 导入包 导入模块
    in - - for.in遍历,检查存在 - for.in遍历,检查存在
    inline C99内联函数 内联函数 - - -
    instanceof - - 是否在原型链 - -
    interface - - - 接口定义 -
    is - - - - 检查变量相等
    lambda - - - - 匿名函数
    namespace - 定义命名空间 - - -
    of - - ES6 for.of迭代 - -
    package - - - 声明包 -
    pass - - - - 空语句
    raise - - - - 抛出异常
    range - - - 范围 -
    return 函数返回 函数返回 函数返回 函数返回 函数返回
    select - - - 通道选择 -
    switch 开关语句 开关语句 开关语句 开关语句 -
    template - 模板 - - -
    this - 当前对象指针 当前对象指针 - -
    throw - 抛出异常 抛出异常 - -
    try - try.catch异常处理 try.catch异常处理 - try.except异常处理
    using - 使用命名空间 - - -
    virtual - 虚函数/虚基类 - - -
    while 循环 循环 循环 - 循环
    with - - 注入对象 - with.as简化异常处理
    yield - - - - 函数返回生成器(generator)

  • 运算符

    运算符 C C++ JS Go Python
    and - - - - 逻辑与
    const_cast - 增删const类型转换 - - -
    dynamic_cast - 动态强制类型转换 - - -
    not - - - - 逻辑非
    operator - 运算符重载 - - -
    or - - - - 逻辑或
    reinterpret_cast - 重新解释强制转型 - - -
    sizeof 获取字节数 获取字节数 - - -
    static_cast - 强制类型转换 - - -
    typeid - 获取类型 - - -
    typeof GNU C扩展,获取类型 GNU扩展,建议用typeid 获取类型 - -
  • 优先级

    优先级 C C++ JS Go Python
    0   :: - - -
    1 () [] -> . - - - -
    2 ! ~ ++ -- + - * (type) sizeof - - - -
    3 * / % - - - -
    4 + - - - - -
    5 << >> - - - -
    6 < <= > >= - - - -
    7 == != - - - -
    8 & - - - -
    9 ^ - - - -
    10 | - - - -
    11 && - - - -
    12 || - - - -
    13 ?: - - - -
    14 = += -= *= /= %= &= ^= |= <<= >>= - - - -
    15 , - - - -