【Go语言圣经】2.1

目标

了解

  1. 大小写敏感性:大写和小写字母被认为是不同的
  2. 保留字与内建名称:Go 定义了一系列关键字(不能用作自定义名字)和内建名称(虽然内建名称可以被重新定义,但要谨慎使用)。
  3. 函数内部的名字作用域仅限于函数内部,而包级(全局)名字如果首字母大写则为导出(对外可见),否则仅在包内可见。
  4. Go 推荐使用驼峰式命名而非下划线分隔

概念

  1. 标识符(identifier)是用来命名变量、函数、类型等的名字。大多数编程语言都有类似的命名规则,但细节可能不同。

  2. 命名规则:名字必须以字母(包括 Unicode 字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线

    • 在编译器解析过程中,统一的规则简化了词法分析和符号管理。
  3. 大小写敏感性

    • 这种设计还决定了包导出的规则
    • 使得程序员可以通过大小写区别同一含义的不同版本,比如内部实现与外部接口的差异(尽管通常建议避免混淆)。
  4. 关键字(保留字):语言语法的一部分

    break      default       func     interface   select
    case       defer         go       map         struct
    chan       else          goto     package     switch
    const      fallthrough   if       range       type
    continue   for           import   return      var
    
    
  5. 预定义名字(内建元素):为程序提供了常用的工具函数、类型和常量

    内建常量: true false iota nil
    
    内建类型: int int8 int16 int32 int64
              uint uint8 uint16 uint32 uint64 uintptr
              float32 float64 complex128 complex64
              bool byte rune string error
    
    内建函数: make len cap new append copy close delete
              complex real imag
              panic recover
    
    
  6. 作用域与可见性

    • 作用域决定了一个名字可以在哪里被访问。很多语言都有局部作用域、全局作用域和模块作用域的概念。Go 通过包和导出规则实现了这一点,这是模块化编程的重要基础。
    • 局部与全局
      • 如果一个名字在函数内部定义,它只在该函数内部有效;如果在函数外部定义,则在整个包中都可以访问。
    • 导出规则
      • 包级名字的首字母大写代表导出(public),可供外部包访问;首字母小写则仅在包内有效。
      • 例如,fmt.PrintfPrintf 以大写开头,因而可以在包外调用,而包名一般都使用小写以避免混淆。
  7. 命名风格

    • 推荐使用驼峰式命名(CamelCase)而非下划线分隔
    • 对于局部变量,通常使用短小的名字(如 ij 等),因为作用范围有限;
    • 对于作用域较大、生命周期较长的变量或函数,则建议使用描述性更强的名字。
    • 约定词缩略:
      • 对于常见缩略词(如 ASCII、HTML),约定上避免混合大小写书写。例如可以使用 htmlEscapeHTMLEscape,但不建议使用 escapeHtml

要点

语言特性

  • 基于作用域的命名管理:通过首字母大小写的简单规则实现了包内与包外的访问控制。

总结与思考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值